@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#282c28;background:#f2f0e9;font-synthesis:none;--line:#deded4;--orange:#e9653a;--muted:#7b7e74}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid #d5d7cc;background:#f9f9f4;padding:10px 15px;border-radius:5px;color:inherit;font-size:13px;font-weight:600;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#e7e9dc;transform:translateY(-1px)}button:focus-visible,[tabindex]:focus-visible{outline:3px solid #318597;outline-offset:3px}button:disabled{cursor:not-allowed;color:#777b71;background:#f0f1e9;border-color:#e1e3d8}a{color:inherit;text-decoration:none}header{height:85px;margin:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cfD2c5}.brand{font:700 21px 'Space Grotesk',sans-serif;display:flex;align-items:center;gap:12px;letter-spacing:-1px}.logo{background:var(--orange);color:#fff;width:32px;height:32px;display:grid;place-items:center;font-size:28px;border-radius:4px}.edition{border-left:1px solid #cccfc3;padding-left:16px;margin-left:8px;font:500 9px 'DM Sans',sans-serif;letter-spacing:1.4px}.header-right{display:flex;align-items:center;gap:15px;font-size:10px;letter-spacing:1px}.quiet{background:transparent;font-size:11px;font-weight:500}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#7a7f6d}h1,h2,h3{font-family:'Space Grotesk',sans-serif;margin:0;letter-spacing:-1.2px}h2{font-size:21px;line-height:1.3}p{line-height:1.6}small{font-size:11px;color:var(--muted);line-height:1.6}.muted{color:var(--muted)}.primary{background:var(--orange);color:white;border-color:var(--orange)}.primary:hover:not(:disabled){background:#d9562e}.primary span{font-size:19px}.wide{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.setup{max-width:1300px;margin:65px auto 80px;padding:0 5%;position:relative;min-height:700px}.setup>h1{font-size:clamp(56px,7vw,96px);line-height:1.04;margin:24px 0}.setup em,.victory em{font-style:normal;color:var(--orange)}.setup>p{max-width:460px;color:#72766a;font-size:16px}.setup-card{max-width:470px;margin-top:32px;padding:25px;background:#fafbf5;border:1px solid var(--line);border-radius:9px}.setup-card h2{margin-top:8px}.setup-card p{font-size:13px;margin:6px 0 18px;color:var(--muted)}.player-picker{display:flex;gap:8px}.player-picker button{flex:1}.chosen{background:#e6ebd9;border-color:#84926a}.start{margin:16px 0 10px;width:100%;display:flex;justify-content:space-between;align-items:center}.setup-art{position:absolute;top:95px;right:4%;width:43%;height:440px}.paper{background:#fffcf3;border:1px solid #d8d5c8;width:280px;height:350px;padding:30px;position:absolute;box-shadow:0 16px 28px #3337140c}.paper span{font-size:10px;letter-spacing:2px}.paper h2{font-size:32px;margin-top:28px}.paper i{display:block;margin:30px 0;color:#939c80;font:700 24px 'Space Grotesk';border:3px solid currentColor;padding:8px;transform:rotate(-8deg);text-align:center}.paper hr{border:0;border-top:1px solid #e4e1d4;margin:18px 0}.p1{left:0;top:0;transform:rotate(-12deg)}.p2{right:0;top:65px;transform:rotate(8deg)}.p2 i{color:var(--orange);font-size:22px}.stamp{background:#dce4c9;border:1px solid #aab69a;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-8px;left:2px;display:grid;place-content:center;text-align:center;font-size:15px;font-weight:700;transform:rotate(-14deg)}.game{max-width:1480px;margin:0 auto;padding:32px 4%}.game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.game-top h1{font-size:32px;margin-top:8px}.clock{display:grid;grid-template-columns:auto auto;gap:6px 20px;align-items:center}.clock>span{font-size:11px;border:1px solid #c8cdbb;border-radius:4px;padding:7px 10px;grid-row:span 2}.clock strong{font:500 25px 'Space Grotesk'}.clock i{color:#a9af9c;font-style:normal}.turn-bar{background:#e5ead9;border:1px solid #d2dac4;border-radius:7px;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;margin-bottom:18px;font-size:13px}.turn-bar>div{display:flex;gap:12px;align-items:center}.turn-dot{width:10px;height:10px;border-radius:50%}.order>span:first-child{font-size:9px;letter-spacing:1px;color:#7c836d;margin-right:6px}.order-token{width:25px;height:25px;border-radius:50%;border:1px solid #bdc6ae;display:grid;place-items:center;color:#8c947f}.order-token.active{background:var(--player);color:#fff;border-color:var(--player)}.order-arrow{color:#a6af99;font-size:10px}.play-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(315px,1fr);gap:18px}.panel{background:#fafbf5;border:1px solid #daddd0;border-radius:8px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:23px 24px 16px}.section-title h2{margin-top:6px}.section-title>.muted{font-size:11px}.map-hint{font-size:10px;display:flex;align-items:center;gap:6px;color:#7d876b}.map-hint i{width:8px;height:8px;background:#dde8c5;border:1px solid #94aa73;border-radius:50%}.map{display:block;width:100%;max-height:510px;margin:0 auto}.edge{stroke:#d5d8c9;stroke-width:2}.edge.reachable{stroke:#7d995a;stroke-width:3;stroke-linecap:round}.node rect{fill:#f2f3ea;stroke:#cdd2bf;stroke-width:1.5}.node text{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;fill:#4c5543}.node.legal{cursor:pointer}.node.legal rect{fill:#e5edD8;stroke:#8da76a;stroke-width:2}.node.legal:hover rect{fill:#d1e3b5}.node.current rect{fill:#30382c;stroke:#30382c}.node.current>text{fill:#fff}.node .node-meta{font-family:'DM Sans';font-size:8px;letter-spacing:1px;fill:#929986;font-weight:500}.node .token-number{font-size:9px;fill:#fff}.actions{padding:25px;align-self:stretch}.action-heading h2{margin-top:8px;font-size:24px}.action-section{border-top:1px solid var(--line);padding-top:17px;margin-top:20px}.action-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:11px}.action-label span{font-size:10px;color:var(--muted)}.document-buttons{display:flex;gap:7px;flex-wrap:wrap}.document-buttons button{padding:8px 11px;font-size:11px}.action-section>small{display:block;margin-top:10px}.center-note{padding:17px;background:#f0f2e7;font-size:12px;line-height:1.6;margin-top:20px;color:#777f69;border-radius:5px}.service-option{margin-top:10px}.service-option small{display:block;font-size:10px;line-height:1.5;margin:5px 1px}.service-option button{font-size:12px}.wait{background:#e5ecd9;border-color:#bfcca9}.wait span{font-size:10px;font-weight:400}.chip{display:inline-block;border:1px solid #d2d8c4;background:#eef2e4;padding:4px 7px;font:500 10px 'Space Grotesk';border-radius:3px;margin:2px}.chip.business{border-color:#d9d0e3;background:#f0ebf5;color:#89739c}.chip.absent{background:transparent;border-color:#e4e6dc;color:#bec2b4}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0}.player-card{border:1px solid #dbded1;border-top:3px solid #d3d8c7;border-radius:6px;background:#fafbf5;padding:17px}.player-card.active{border-top-color:var(--player);background:#fffdf5}.player-title{display:flex;align-items:center;gap:9px;font-size:12px}.avatar{background:var(--player);color:white;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:10px}.location{margin-left:auto;color:#858d75;font-size:10px}.inventory{margin:14px -2px 10px;display:flex;flex-wrap:wrap;gap:1px}.inventory .chip{padding:3px 5px}.account-list{min-height:24px;font-size:10px;display:flex;gap:5px;flex-wrap:wrap}.account-list>span:not(.muted){padding:3px 5px;background:#e7eddc;border-radius:3px}.player-progress{border-top:1px solid #e7e9df;margin-top:9px;padding-top:10px;font-size:10px;color:#8d937f}.intel{margin:22px 0}.tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line);gap:22px;overflow:auto}.tabs button{white-space:nowrap;display:flex;align-items:center;gap:12px;border:0;border-radius:0;background:transparent;padding:14px 0;font-size:12px;color:#939b84}.tabs button.active{color:#343b2b;border-bottom:2px solid var(--orange)}.known-dot{width:5px;height:5px;background:#ced3c2;border-radius:50%}.known-dot.known{background:#7d995a}.intel-content{padding:22px 24px}.network-rules{display:flex;align-items:center;gap:30px;margin-bottom:18px}.network-rules>strong{min-width:130px;font:500 20px 'Space Grotesk'}.network-rules small{display:block;font-size:8px;letter-spacing:1px;margin-bottom:4px}.unknown-network{display:flex;align-items:center;gap:16px;margin-bottom:20px}.unknown-network>span{font:500 28px 'Space Grotesk';width:45px;height:45px;background:#edf0e4;display:grid;place-items:center;border-radius:7px;color:#a6af96}.unknown-network strong{font-size:13px}.unknown-network p{margin:4px 0;font-size:12px;color:#8a927b}.branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.branch-card{border:1px solid #e0e4d6;padding:16px;border-radius:5px}.branch-title{display:flex;justify-content:space-between;align-items:center}.branch-title strong{font-family:'Space Grotesk';font-size:18px}.branch-title span{font-size:10px;color:#8c957d}.branch-card p{font-size:12px;margin:8px 0}.branch-card small{font-size:8px;letter-spacing:1px}.log-scroll{max-height:240px;overflow:auto;padding:0 24px 20px}.log-entry{display:flex;gap:13px;font-size:11px;line-height:1.6;padding:10px 0;border-top:1px solid #e8ebdf}.log-entry time{color:#959c89;font-size:9px;flex:0 0 125px;padding-top:2px}.log-actor{font-size:9px;font-weight:700;flex:0 0 42px;padding-top:2px}.overlay{position:fixed;inset:0;background:#20261cd9;backdrop-filter:blur(7px);z-index:5;display:flex;align-items:center;justify-content:center;padding:22px;overflow:auto}.modal{background:#f9faf3;border-radius:10px;width:520px;max-width:100%;padding:35px;max-height:90vh;overflow:auto;box-shadow:0 30px 80px #0003}.modal h2{font-size:32px;margin:15px 0}.modal p,.modal li{font-size:13px;line-height:1.7}.modal ol{padding-left:19px}.modal li{padding-left:5px;margin:12px 0}.modal .primary{margin-top:20px}.victory{text-align:center}.victory h1{font-size:38px;line-height:1.15}.winner-seal{border:2px solid #8caa6c;background:#e7efd8;color:#789752;width:80px;height:80px;margin:25px auto;display:grid;place-items:center;border-radius:50%;font-size:40px}.winning-account{padding:15px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px}.winning-account strong{font-size:10px}.progress{height:8px;border-radius:5px;background:#e4e7da;margin:20px 0}.progress i{display:block;background:var(--orange);height:100%;border-radius:5px}.error{font-size:12px;color:#b5442b}.actions>p{font-size:13px}@media(min-width:1500px){.setup{padding:0 20px}}@media(max-width:1000px){.edition{display:none}.game-top h1{font-size:26px}.play-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr)}.section-title{padding:20px 18px 12px}.map-hint{display:none}.actions{padding:20px}.map{margin-top:15px}.network-rules{gap:15px}.setup-art{right:0;width:40%;transform:scale(.85);transform-origin:right top}}@media(max-width:740px){header{height:70px}.brand{font-size:17px}.header-right{font-size:0;gap:7px}.quiet{font-size:10px;padding:7px}.logo{width:26px;height:26px}.setup{margin-top:35px}.setup>h1{font-size:64px}.setup>p{font-size:14px}.setup-art{display:none}.setup-card{max-width:none}.game{padding:25px 4%}.game-top{align-items:flex-start;gap:20px}.game-top h1{font-size:23px;max-width:230px}.clock{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0}.clock>span{padding:4px 7px;font-size:9px}.clock strong{font-size:16px}.clock small{font-size:9px}.eyebrow{font-size:8px}.turn-bar{padding:12px;gap:10px}.turn-bar>div{gap:7px}.turn-bar strong{font-size:11px}.turn-bar .muted{font-size:10px}.order>span:first-child,.order-arrow{display:none}.order-token{width:21px;height:21px;font-size:10px}.play-grid{grid-template-columns:1fr}.map{max-height:440px}.section-title h2{font-size:20px}.actions{padding:23px}.players{grid-template-columns:repeat(2,minmax(0,1fr))}.player-card{padding:12px}.player-title{font-size:10px;gap:5px}.avatar{width:21px;height:21px}.location{font-size:9px}.inventory{gap:0}.inventory .chip{padding:3px 4px;font-size:9px}.tabs{gap:20px;padding:0 18px}.tabs button{font-size:11px}.intel-content{padding:18px}.network-rules{flex-wrap:wrap;gap:13px}.network-rules>strong{width:100%;font-size:17px}.branch-card{padding:12px}.branch-card p{font-size:11px}.branch-title span{font-size:9px}.log-scroll{padding:0 18px 18px}.log-entry{flex-wrap:wrap;gap:3px 9px}.log-entry>span:last-child{width:100%}.log-entry time{flex-basis:auto}.log-actor{flex-basis:auto}.modal{padding:26px}.modal h2{font-size:28px}}
/* The action panel can be taller; keep the map card fitted to its content. */
.board{align-self:start}
/* Native language control remains keyboard accessible at every viewport size. */
.language-picker select{font:500 12px 'DM Sans',sans-serif;color:inherit;background:#fafbf5;border:1px solid #d5d7cc;border-radius:5px;padding:8px;cursor:pointer;max-width:110px}.language-picker select:focus-visible{outline:3px solid #318597;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html[lang=ru] .paper h2{font-size:24px}html[lang=ru] .paper i{font-size:20px}html[lang=ru] .setup>h1{font-size:clamp(46px,6vw,82px)}html[lang=ru] .player-picker button{padding:10px 6px}html[lang=ru] .network-rules{flex-wrap:wrap}html[lang=ru] .log-actor{flex-basis:60px}@media(max-width:740px){.local-mode{display:none}header{height:auto;min-height:70px;flex-wrap:wrap;gap:10px;padding:12px 0}.header-right{flex-wrap:wrap}.language-picker select{font-size:11px;padding:6px}html[lang=ru] .setup>h1{font-size:clamp(40px,10vw,64px)}html[lang=ru] .turn-bar{flex-wrap:wrap}.action-label{gap:8px;flex-wrap:wrap}html[lang=ru] .game-top h1{font-size:21px}}

/* Full document names wrap within the existing card and action layouts. */
.chip,.document-buttons button{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}
.inventory>span,.network-rules>div,.branch-card,.player-card{min-width:0}
.network-rules{flex-wrap:wrap}
.network-rules>div{flex:1 1 180px}
.log-entry>span:last-child,.player-progress{min-width:0;overflow-wrap:anywhere}

/* Documents stay below the map; branch details and service share the right column. */
.map-column{display:flex;flex-direction:column;gap:18px;min-width:0;align-self:start}
.map-column>.board{width:100%}
.current-branch{min-width:0;align-self:start}
.current-branch .section-title{align-items:flex-start}
.current-branch h2{overflow-wrap:anywhere}
.current-branch .section-title>.muted{flex-shrink:0}
.current-branch-content{padding:0 24px 24px}
.current-branch-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding-bottom:16px;font-size:12px;color:var(--muted)}
.current-branch-summary strong{color:#4c5543}
.requirement-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;border-top:1px solid var(--line);padding-top:16px}
.requirement-groups h3{font:600 11px 'DM Sans',sans-serif;letter-spacing:0;margin-bottom:7px;color:#727b65}
.business-requirements{grid-column:1/-1}
.location-placeholder{margin:0;padding:0 24px 24px;font-size:13px;color:var(--muted)}
@media(max-width:1000px){.current-branch-content{padding:0 18px 18px}.location-placeholder{padding:0 18px 18px}}
@media(max-width:440px){.requirement-groups{grid-template-columns:1fr}.current-branch .section-title{flex-wrap:wrap}}

/* Compact queue dots inside map nodes and in branch details. */
.queue-icons{display:inline-block;vertical-align:middle;fill:none;color:#7a8569;flex-shrink:0}
.queue-icons.queue-empty{color:#58905b}
.queue-summary{display:inline-flex;align-items:center;gap:7px}

.play-error{grid-column:1/-1;margin:0}

/* Tinted document tokens: a large central pictogram and two caption lines. */
.doc-icon{position:relative;display:inline-flex;flex-direction:column;vertical-align:middle;align-items:center;justify-content:center;gap:10px;flex:0 1 132px;width:132px;max-width:100%;min-width:0;height:112px;padding:8px 7px;margin:0;border:1px solid color-mix(in srgb,var(--doc-color) 28%,#e8e7df);border-radius:7px;background:color-mix(in srgb,var(--doc-color) 8%,#fffdf5);color:var(--doc-color);line-height:1;touch-action:manipulation;white-space:normal}
.doc-icon svg{display:block;flex-shrink:0;width:44px;height:46px;fill:color-mix(in srgb,var(--doc-color) 15%,#fffdf5);stroke:var(--doc-color);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.doc-icon .doc-label{display:flex;flex-direction:column;justify-content:center;width:100%;height:2.6em;font:600 11px/1.3 'Space Grotesk',sans-serif;letter-spacing:.2px;text-transform:uppercase;color:var(--doc-color);text-align:center;pointer-events:none}
.doc-label-line{display:block;white-space:nowrap}
.doc-icon.doc-business svg{stroke-width:2}
.doc-icon.doc-absent{border-style:dashed;background:transparent}
.doc-icon.doc-absent svg{opacity:.4;fill:transparent}
.doc-icon.doc-absent .doc-label{color:color-mix(in srgb,var(--doc-color) 75%,#3d4536)}
.doc-state{position:absolute;right:6px;top:5px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;font-size:12px;line-height:1;background:#edf1e6;color:#566b47}
.doc-icon:hover:not(:disabled),.doc-icon[aria-expanded=true]{background:color-mix(in srgb,var(--doc-color) 15%,#fffdf5);border-color:var(--doc-color);transform:none}
.document-buttons{gap:8px}
.inventory{gap:2px;margin:12px 0 10px}
.log-entry .doc-icon{vertical-align:top;margin:3px}
.acquisition-document{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:16px 0;font-size:13px}
.document-detail{position:fixed;inset:auto;margin:0;width:280px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:16px;background:#fffdf5;border:1px solid #cbd1bd;border-radius:8px;box-shadow:0 8px 30px #28302026;color:#30382c;font:13px/1.5 'DM Sans',sans-serif;z-index:10;overflow-wrap:anywhere}
.document-detail::backdrop{background:transparent;pointer-events:none}
.document-detail strong{font-size:14px;display:block}
.document-detail p{font-size:12px;color:#707861;margin:8px 0}
.document-detail button{width:100%;min-height:44px;margin-top:8px}
@media(max-width:740px){.players{grid-template-columns:1fr}.branch-grid{grid-template-columns:1fr}}
.action-section>.document-hint{margin:0 0 10px}

/* Separate shared paperwork from business extras without relying on color alone. */
.document-groups{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;width:100%;min-width:0}
.document-group{flex:1 1 200px;min-width:0;margin:0;padding:12px;background:#eef2e6;border:1px solid #d5ddc9;border-radius:7px}
.document-group-business{background:#f2edf6;border-color:#ddd1e6;border-top:3px double #ae95bd}
.document-group h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.3px;color:#5d6c50}
.document-group h3::before{content:'';width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#7d946b}
.document-group-business h3{color:#80638e}
.document-group-business h3::before{border-radius:0;transform:rotate(45deg);background:#a082b2}
.document-tokens{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}
.inventory .document-groups{gap:8px}
.inventory .document-group{flex-basis:100%;padding:9px}
.doc-icon.doc-owned{border:2.5px solid var(--doc-color);box-shadow:0 1px 3px #28302018}
.doc-icon.doc-owned:hover,.doc-icon.doc-owned[aria-expanded=true]{border-width:2.5px}
.personal-requirements,.business-requirements{padding:10px;border:1px solid #d5ddc9;background:#eef2e6;border-radius:5px}
.business-requirements{background:#f2edf6;border-color:#ddd1e6;border-top:3px double #ae95bd}
.requirement-groups .business-requirements h3{color:#80638e}
.document-detail-category{display:block;font-size:10px;font-weight:600;letter-spacing:.5px;color:#637750;margin-bottom:6px}
.document-detail-category.business{color:#80638e}
@media(max-width:440px){.document-group{flex-basis:100%}}

/* Network and branch requirements each share one neutral document list. */
.requirement-groups{grid-template-columns:minmax(0,1fr)}
.requirement-block{min-width:0}
.requirement-block>h3{font:600 11px 'DM Sans',sans-serif;letter-spacing:0;margin:0 0 9px;color:#727b65}
.requirement-pair{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}
.network-rules>.requirement-block{flex:1 1 100%;width:100%}
.branch-card .requirement-block{margin-top:14px}

/* City travel and resumable document processes. */
.map{max-height:none}
.movement-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px 8px}
.movement-preview{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;justify-content:flex-end;font-size:12px;color:#607c42}
.movement-option{display:flex;align-items:center;gap:6px;white-space:nowrap}
.movement-option-travel{color:#7b7e74}
.movement-icon{width:28px;height:28px;fill:currentColor;display:block}
.node-movement{color:#7b7e74;pointer-events:none;fill:currentColor}
.node-movement-move{color:#607c42}
.node .node-movement rect{fill:none;stroke:currentColor;stroke-width:2}
.node.destination{cursor:pointer}
.node.destination:focus-visible rect{stroke:#318597;stroke-width:3}
.node .node-meta{font-size:10px;letter-spacing:0}
.node.current .node-meta{fill:#e8efdc}
.node-cafe rect,.node-copy rect,.node-exchange rect{stroke:#b2a184;fill:#f3ede0}
.node-mup rect,.node-apr rect{stroke:#95a2bd;fill:#e8edf5}
.node.legal rect{stroke:#8da76a;fill:#e5edd8}
.node.current rect{fill:#30382c;stroke:#30382c}
.process-steps{padding-left:22px;margin:12px 0}
.process-steps li{padding:5px 0 5px 3px;font-size:12px}
.process-steps strong,.process-steps span{display:block}
.process-steps span{font-size:11px;color:#737c65}
.process-steps .complete{opacity:.55}
.process-steps .active{color:#b24e2e}
.process-steps .pending{color:#7b8271}
.player-progress>div{display:flex;align-items:center;gap:6px;margin:5px 0}
.action-section>h3{font-size:12px;margin:14px 0 10px}
@media(max-width:740px){.map{max-height:none}.movement-guide{padding:0 18px 8px;align-items:flex-start}.movement-preview{font-size:10px}}


/* Read-only catalog for reviewing all configured document quests. */
.quest-debug summary{display:flex;align-items:center;gap:10px;padding:16px 20px;cursor:pointer;list-style:none;font-size:13px;font-weight:600}
.quest-debug summary::-webkit-details-marker{display:none}
.quest-debug summary::before{content:'▸';font-size:15px;color:var(--muted)}
.quest-debug[open] summary::before{content:'▾'}
.quest-debug summary small{margin-left:auto;white-space:nowrap;font-weight:400}
.quest-debug-content{max-height:65vh;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);padding:0 20px 20px;scrollbar-gutter:stable}
.quest-debug-content>p{font-size:12px;margin:14px 0 20px}
.quest-debug-group+section{margin-top:24px}
.quest-debug-group>h2{font-size:18px;margin-bottom:12px}
.quest-debug-card{border:1px solid var(--line);border-radius:6px;padding:14px;background:#fffdf7;margin-top:10px}
.quest-debug-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.quest-debug-heading h3{font-size:14px;letter-spacing:0;line-height:1.45}
.quest-debug-card{display:flex;align-items:flex-start;gap:16px}
.quest-debug-body{flex:1;min-width:0}
.quest-debug-preview{flex-shrink:0;display:flex}
.quest-debug-heading code{display:inline-block;font-size:11px;color:var(--muted);margin-right:5px}
.quest-debug-badge{flex-shrink:0;font-size:10px;color:#7e7d75;background:#eeece5;border-radius:4px;padding:3px 6px}
.quest-debug-badge.enabled{color:#58713e;background:#e5edd8}
.quest-debug-card ol{padding-left:21px;margin:14px 0}
.quest-debug-card li{padding:6px 0 6px 4px;font-size:12px}
.quest-debug-card li::marker{color:var(--muted)}
.quest-debug-card li>div{display:inline-block;width:calc(100% - 52px);vertical-align:top}
.quest-debug-card li strong,.quest-debug-card li>div span{display:block;line-height:1.5}
.quest-debug-card li>div span{color:var(--muted);margin-top:2px}
.quest-debug-hours{display:inline-block;width:48px;text-align:right;vertical-align:top;font-weight:600;white-space:nowrap}
.quest-debug-total{border-top:1px solid var(--line);padding-top:10px;font-size:11px;text-align:right;color:var(--muted)}
@media(max-width:740px){.quest-debug-heading{flex-wrap:wrap;gap:6px}.quest-debug summary{padding:14px}.quest-debug-content{padding:0 14px 14px}}



/* Local official logos and original service pictograms. */
.node .map-location-icon>.icon-background{fill:#fff;stroke:none}
.map-location-icon{pointer-events:none}
.node .node-code{font-size:12px}
.location-icon{display:inline-block;flex-shrink:0;object-fit:contain;background:#fff;border-radius:4px;padding:2px;vertical-align:middle;margin-right:8px}
.location-label,.branch-title>strong,#current-branch-title{display:flex;align-items:center}
.location-label .location-icon{width:22px;height:22px}


/* Board-game service actions: queue progress and distinct account states. */
.service-actions{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
.service-symbol{width:20px;height:20px;flex-shrink:0}
.service-queue{display:flex;align-items:center;gap:16px;width:100%;padding:18px 16px;text-align:left;background:#fff0e6;border:1px solid #d89071;border-radius:9px}
.service-queue:hover:not(:disabled){background:#f9e2d2}
.service-queue>.service-symbol{width:42px;height:42px;color:#c2532d}
.service-queue-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.service-queue-copy strong{font-size:16px;font-weight:600}
.service-queue-copy small{font-size:12px;font-weight:400}
.service-queue-progress{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:96px;font-size:12px;color:#777d6c;font-weight:400}
.service-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.service-dots i{display:block;width:10px;height:10px;border-radius:50%;background:#dcded2}
.service-dots i.is-filled{background:#c2532d}
.service-queue.is-clear:disabled{background:#e5edd8;border-color:#e5edd8;color:#507334}
.service-queue.is-clear>.service-symbol,.service-queue.is-clear small,.service-queue.is-clear .service-queue-progress{color:#507334}
.service-queue.is-clear .service-dots i.is-filled{background:#698b48}
.service-dependency{display:flex;align-items:center;justify-content:center;gap:7px;color:#767f69;font-size:11px;margin:16px 0 0}
.service-dependency .service-symbol{width:17px;height:17px}
.service-accounts{display:grid;align-items:start;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin-top:14px}
.service-account{display:flex;flex-direction:column;gap:14px;min-width:0;padding:16px 12px;background:#f0f1e8;border-radius:8px}
.service-account-title{display:flex;align-items:center;gap:8px}
.service-account-title>.service-symbol{width:27px;height:27px}
.service-account-title h3{font-size:16px;letter-spacing:-.3px;overflow-wrap:anywhere}
.service-account-business .service-account-title>.service-symbol{color:#80628f}
.service-account-status{display:flex;align-items:center;gap:6px;font-size:12px;line-height:1.45;color:#6a735e}
.service-account-status .service-symbol{width:18px;height:18px}
.service-account.is-documents .service-account-status{color:#b84b27}
.service-account.is-ready .service-account-status,.service-account.is-owned .service-account-status{color:#507334}
.service-account.is-owned{background:#e8efde}
.service-account.is-locked{background:#eceee5}
.service-account.is-unavailable{min-height:205px}
.service-account.is-unavailable .service-account-status{flex:1;flex-direction:column;justify-content:center;gap:12px;text-align:center;padding:8px 0}
.service-account.is-unavailable .service-account-status .service-symbol{width:64px;height:64px;flex-shrink:0}
.service-missing{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}
.doc-icon.doc-compact{flex:0 0 44px;width:44px;height:48px;padding:4px;gap:0;border-radius:5px}
.doc-icon.doc-compact svg{width:30px;height:34px}
.service-lock-order{display:flex;align-items:center;gap:8px;color:#87917b;margin-top:auto}
.service-account-foot{font-size:11px}
.service-open{display:flex;align-items:center;justify-content:space-between;gap:5px;width:100%;margin-top:auto;padding:10px;font-size:13px}
.service-combined{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:12px;font-size:12px}
@media(min-width:741px) and (max-width:1100px){.service-account-title{flex-direction:column;align-items:flex-start}.service-queue{gap:10px;padding:15px 12px}.service-queue-copy strong{font-size:14px}.service-queue>.service-symbol{width:32px;height:32px}}
@media(max-width:380px){.service-accounts{gap:8px}.service-account{padding:14px 10px}.service-account-title{flex-direction:column;align-items:flex-start}.service-queue{padding:15px 12px;gap:10px}.service-queue>.service-symbol{width:32px;height:32px}.service-queue-copy strong{font-size:14px}}

.node.current .queue-icons{color:#dbe7cc}
.node.current .queue-icons.queue-empty{color:#b9dfa4}

/* Panels and document trays follow their own content height. */
.actions{align-self:start}

.doc-icon.doc-compact.doc-owned .doc-state{right:-3px;top:-4px;background:#e0ecd4;border:1px solid #8da76a;color:#3f652c;font-size:11px;box-shadow:0 1px 2px #28302015}

/* The same ownership marks in bank requirements and player inventory. */
.requirement-pair .doc-owned .doc-state,.inventory .doc-owned .doc-state{width:24px;height:24px;right:5px;top:5px;background:#4c7337;border:2px solid #fffdf5;color:#fff;font-size:16px;font-weight:700;box-shadow:0 1px 4px #28302030}

/* Preview the next document step without changing movement availability. */
.map .node.document-destination>rect{fill:#fff0c5;stroke:#cc8a24;stroke-width:3.5;filter:drop-shadow(0 0 5px #e4b84788)}
.map .node.current.document-destination>rect{fill:#30382c}

/* Automatic night-to-morning cue, visible even when the board is scrolled away. */
.day-changing .board .map{animation:day-map-reset 2s ease-out 2.6s both}
.day-changing .clock{animation:day-clock-reset 2s ease-out 2.6s both}
@keyframes day-map-reset{0%,15%{filter:saturate(.35);opacity:.55}100%{filter:none;opacity:1}}
@keyframes day-clock-reset{0%,20%{color:var(--orange)}100%{color:inherit}}


.service-queue.is-unneeded:disabled{background:#f0f1e9;border-color:#d9ddd0;color:#7c8472}
.service-queue.is-unneeded>.service-symbol,.service-queue.is-unneeded small{color:#8b937f}

/* Smaller labeled cards on phones, with no extra height in their trays. */
@media(max-width:740px){
 .doc-icon:not(.doc-compact){flex-basis:112px;width:112px;height:88px;padding:6px 5px;gap:6px}
 .doc-icon:not(.doc-compact) svg{width:30px;height:32px}
 .doc-icon:not(.doc-compact) .doc-label{font-size:10px;letter-spacing:0}
 .doc-icon[data-document="O10"] .doc-label{font-size:9.5px}
 .document-tokens,.requirement-pair>.document-group{gap:6px}
 .document-group{padding:8px}
 .inventory .document-group{padding:7px}
 .document-group h3{margin-bottom:6px}
 .requirement-pair .doc-owned .doc-state,.inventory .doc-owned .doc-state{width:20px;height:20px;right:3px;top:3px;font-size:13px}
}
.board .map{width:min(100%,calc(85vh*560/900));height:auto;aspect-ratio:560/900;max-height:none}
.tabs button{gap:7px}.tabs .location-icon{width:22px;height:22px;margin-right:0}.network-code{font-weight:600;letter-spacing:.04em}
.log-entry .doc-icon.doc-compact{flex:0 0 22px;width:22px;height:24px;padding:2px;margin:0 2px;vertical-align:-6px;border-radius:4px}.log-entry .doc-icon.doc-compact svg{width:16px;height:18px}

/* Business markers stay independent of ownership badges. */
.doc-business-mark{position:absolute;left:6px;top:5px;font:800 16px/1 'Space Grotesk',sans-serif;color:#30382c;pointer-events:none}
.doc-compact .doc-business-mark{left:2px;top:2px;font-size:11px}
.log-entry .doc-compact .doc-business-mark{left:1px;top:1px;font-size:8px}

.current-branch-content>.service-actions{margin-top:0;border-top:0;padding-top:0}
.rules-notice{margin:0 0 18px;padding:14px 16px;border-radius:12px;background:#fbf0cf;box-shadow:inset 0 0 0 2px #c99a1e;color:#3b2f0c}
.rules-notice h3{margin:0 0 6px;font:600 17px 'Space Grotesk',sans-serif;letter-spacing:-.3px}
.rules-notice-changes{margin:0 0 8px;padding-left:18px;font-size:14px}
.rules-notice-cancelled,.rules-notice-friends{margin:6px 0;font-size:14px;font-weight:600}
.rules-notice-players{display:flex;gap:6px;margin:4px 0 10px}
.rules-notice-token{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font:600 13px 'Space Grotesk',sans-serif}
.rules-notice-ok{margin-top:4px}
.current-branch-content>.requirement-groups{margin-top:20px}


.doc-icon.doc-business,.doc-icon.doc-business:hover:not(:disabled),.doc-icon.doc-business[aria-expanded=true]{border-color:#000}

.requirement-pair .doc-icon:not(.doc-owned),.service-missing .doc-icon:not(.doc-owned){border-style:dashed}

.board>.section-title{align-items:flex-start;flex-wrap:wrap;gap:14px}
.map-clock{margin-left:auto;flex-shrink:0;gap:5px 12px}
.map-clock strong{font-size:21px}
.map-clock small{font-size:10px}
.map-heading-hint{padding:0 24px 12px;display:flex;justify-content:flex-end}
@media(max-width:1000px){.map-heading-hint{padding-right:18px;padding-left:18px}}
/* Main action window: map, location, bank rules and log share one panel. */
.play-grid{grid-template-columns:minmax(0,1fr);align-items:start;max-width:900px;margin:0 auto}
.main-window{min-width:0;overflow:hidden}
.window-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;padding:16px 20px 0;border-bottom:1px solid var(--line)}
.window-status{display:flex;align-items:center;gap:12px;padding-bottom:4px}
.turn-token{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font:600 13px 'Space Grotesk',sans-serif}
.window-header .map-clock{margin-left:0}
.view-tabs{display:flex;gap:2px;margin-left:auto;align-self:flex-end}
.view-tab{display:flex;align-items:center;gap:7px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:10px 10px 12px;color:#7f8774;font-size:12px;white-space:nowrap}
.view-tab:hover:not(:disabled){transform:none;background:#eef0e6}
.view-tab.active{color:#2f362a;border-bottom-color:var(--orange)}
.view-tab-glyph svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;display:block}
.view-tab .location-icon{width:20px;height:20px;border-radius:4px}
.view-tab-location{font-family:'Space Grotesk',sans-serif}
.view-tab-count{font-size:9px;margin-left:4px;color:inherit;opacity:.7}
.view-body{min-width:0}
.view-pane{margin:0}
.board.view-pane{padding-top:12px}
.main-window .play-error{margin:12px 20px 0}
.current-branch.view-pane #current-branch-title{padding:20px 24px 16px;gap:8px}
.log.view-pane .log-scroll{max-height:min(70vh,640px);padding-top:8px}
.players{margin:0;grid-template-columns:1fr}
@media(max-width:1000px){.play-grid{grid-template-columns:1fr}.players{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media(max-width:740px){.game{padding:12px 3%}.window-header{padding:10px 10px 0;gap:8px}.window-status{gap:9px}.window-header .clock{flex-direction:row;align-items:center;gap:8px}.window-header .clock small{display:none}.view-tabs{margin-left:0;width:100%}.view-tab{flex:1 1 0;min-width:0;justify-content:center;padding:8px 2px 10px;font-size:11px;gap:5px}.view-tab>span:last-child{overflow:hidden;text-overflow:ellipsis}.current-branch.view-pane #current-branch-title{padding:16px 16px 12px;font-size:18px}.actions{padding:18px}.main-window .play-error{margin:10px 12px 0}}
@media(max-width:360px){.view-tab-glyph{display:none}}
/* Arrival: pulse the reached node, then slide the location view in. */
.map .node.arrived>rect{transform-box:fill-box;transform-origin:center;animation:node-arrive .34s ease-out both}
@keyframes node-arrive{0%{transform:scale(1)}45%{transform:scale(1.14)}100%{transform:scale(1)}}
.view-enter{animation:view-enter .26s cubic-bezier(.2,.7,.2,1) both}
@keyframes view-enter{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.map .node.arrived>rect,.view-enter{animation:none}}
/* Sheets over the always-visible map. Grid stacking lets a tall sheet extend the page instead of scrolling inside. */
.view-body{display:grid;position:relative}
.view-body>*{grid-area:1/1;min-width:0}
.view-body.has-sheet>.board{filter:blur(2.5px) saturate(.55);opacity:.45;pointer-events:none;user-select:none}
.sheet-backdrop{z-index:1;background:#f2f0e94d;cursor:pointer}
.sheet{z-index:2;align-self:start;margin:12px;background:#fafbf5;border:1px solid #d3d7c7;border-radius:10px;box-shadow:0 18px 40px #2b31220f,0 2px 8px #2b31221a;overflow:hidden}
.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 12px 22px;border-bottom:1px solid var(--line)}
.sheet-header h2{display:flex;align-items:center;gap:9px;font-size:19px;min-width:0;overflow-wrap:anywhere}
.sheet-close{flex:0 0 36px;width:36px;height:36px;padding:0;display:grid;place-items:center;border-radius:50%;background:transparent;border-color:transparent}
.sheet-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.sheet-close:hover:not(:disabled){transform:none;background:#eceee3}
.sheet .location-label{display:none}
.sheet .current-branch-content{padding-top:18px}
.sheet .action-heading h2{margin-top:0}
.view-body.entering>.board{animation:map-dim .26s ease-out both}
.view-body.entering>.sheet-backdrop{animation:sheet-fade .26s ease-out both}
.view-body.entering>.sheet{animation:sheet-in .28s cubic-bezier(.2,.75,.25,1) both}
@keyframes map-dim{from{filter:none;opacity:1}}
@keyframes sheet-fade{from{opacity:0}}
@keyframes sheet-in{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:740px){.sheet{margin:8px}.sheet-header{padding:10px 8px 10px 16px}.sheet-header h2{font-size:17px}.sheet .actions{padding:16px}.view-tab{flex:1 1 0}}
@media(prefers-reduced-motion:reduce){.view-body.entering>*{animation:none!important}}
/* Arrival: one slower continuous transition instead of pulse-then-pop. */
.view-body.arriving>.board{animation:map-dim .7s cubic-bezier(.4,0,.2,1) both}
.view-body.arriving>.sheet-backdrop{animation:sheet-fade .7s ease-out both}
.view-body.arriving>.sheet{animation:sheet-arrive .72s cubic-bezier(.22,.61,.24,1) .06s both}
.view-body.arriving .map .node.arrived>rect{animation:node-arrive .5s ease-out both}
@keyframes sheet-arrive{0%{opacity:0;transform:translateY(46px) scale(.97)}35%{opacity:.65}100%{opacity:1;transform:none}}
.node .node-unknown{font:700 17px 'Space Grotesk',sans-serif;fill:#b4b9a8}.node.current .node-unknown{fill:#8d957f}
/* Turn handoff */
.turn-handoff{position:absolute;z-index:4;top:72px;left:50%;display:flex;align-items:center;gap:14px;padding:14px 22px 14px 14px;background:#fffdf6;border:1px solid #d8dbcc;border-left:5px solid var(--player);border-radius:12px;box-shadow:0 18px 44px #2b312224,0 2px 8px #2b31221a;pointer-events:none;white-space:nowrap;animation:handoff 1.9s cubic-bezier(.22,.61,.24,1) both}
.turn-handoff-token{width:44px;height:44px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font:700 21px 'Space Grotesk',sans-serif;animation:handoff-token .6s .15s cubic-bezier(.3,1.6,.5,1) both}
.turn-handoff small{display:block;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);line-height:1.3}
.turn-handoff strong{display:block;font:600 22px 'Space Grotesk',sans-serif;letter-spacing:-.6px}
@keyframes handoff{0%{opacity:0;transform:translate(-50%,-14px) scale(.94)}14%{opacity:1;transform:translate(-50%,0) scale(1)}80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
@keyframes handoff-token{from{transform:scale(.4)}to{transform:scale(1)}}
.main-window.turn-changed{animation:window-flash 1.2s ease-out}
.main-window.turn-changed .turn-token{animation:token-pop .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes window-flash{0%{box-shadow:0 0 0 3px var(--player)}100%{box-shadow:0 0 0 0 transparent}}
@keyframes token-pop{0%{transform:scale(.5)}100%{transform:scale(1)}}
@media(max-width:740px){.turn-handoff{top:48px;padding:11px 18px 11px 11px;gap:11px}.turn-handoff-token{width:38px;height:38px;font-size:18px}.turn-handoff strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){.turn-handoff{animation:handoff-static 1.9s steps(1) both;transform:translateX(-50%)}.turn-handoff-token,.main-window.turn-changed,.main-window.turn-changed .turn-token{animation:none}}
@keyframes handoff-static{0%,99%{opacity:1}100%{opacity:0}}
/* Branch account summary in bank rules */
.branch-card .branch-accounts{margin:10px 0 4px;font:600 14px 'Space Grotesk',sans-serif;letter-spacing:-.2px;color:#343b2b}
/* Next-step location badge on unowned documents */
.doc-icon .doc-state.doc-next{width:26px;height:26px;right:4px;top:4px;padding:2px;border-radius:7px;background:#fffdf6;border:1.5px solid #d3d7c6;box-shadow:0 1px 3px #28302020}
.doc-icon .doc-state.doc-next img{width:100%;height:100%;object-fit:contain;display:block}
.doc-icon.doc-compact .doc-state.doc-next{width:19px;height:19px;right:-5px;top:-5px;padding:1.5px;border-radius:5px}
.doc-icon.doc-absent .doc-state.doc-next{opacity:1}
@media(max-width:740px){.doc-icon:not(.doc-compact) .doc-state.doc-next{width:22px;height:22px;right:3px;top:3px}}
/* In-progress fraction (hours done / total) in the lower-right corner */
.doc-icon .doc-progress{position:absolute;z-index:1;right:6px;bottom:-8px;padding:0 6px;border:2px solid #fffdf6;border-radius:999px;background:var(--doc-color);color:#fff;font:700 10px/1.4 'Space Grotesk',sans-serif;letter-spacing:.2px}
.doc-icon.doc-compact .doc-progress{right:-5px;bottom:-5px;padding:0 3px;font-size:8.5px}
.player-progress:empty{display:none}
.service-account-placeholder{margin:0;align-self:center;justify-self:center;text-align:center;padding:12px;font:500 16px 'Space Grotesk',sans-serif;letter-spacing:-.3px;color:#282c28}
.network-rules>strong{max-width:none}
.node.current[data-view]{cursor:pointer}.node.current[data-view]:hover>rect{fill:#3f4a39}
/* Waiting state: documents ready, queue pending */
.service-account{position:relative}
.service-account.is-waiting .service-account-status{color:#507334}
.service-account[data-need-queue]{cursor:pointer;transition:background .15s}
.service-account[data-need-queue]:hover{background:#e6ecdb}
.service-account-status{position:relative}
.service-hint{position:absolute;z-index:5;left:-2px;top:calc(100% + 8px);white-space:nowrap;padding:7px 12px;border-radius:8px;background:#2f362a;color:#fff;font-size:12px;font-weight:600;box-shadow:0 6px 16px #2b312229;animation:hint-in 2s ease both;pointer-events:none}
.service-hint::before{content:'';position:absolute;left:16px;top:-5px;width:10px;height:10px;background:#2f362a;transform:rotate(45deg)}
@keyframes hint-in{0%{opacity:0;transform:translateY(-4px)}10%,85%{opacity:1;transform:none}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.service-hint{animation:none}}
/* Knowledge freshness: green = today, yellow [?] = yesterday, red [??] = two or more days ago. */
.freshness{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;margin:6px 0 2px;padding:2px 8px;border-radius:999px;font:600 10px 'DM Sans',sans-serif;letter-spacing:.2px;line-height:1.5}
.fresh-marker{font-weight:700}
.freshness.fresh-today{color:#3f6b2a;background:#e3eed7}
.freshness.fresh-yesterday{color:#7a5800;background:#f7ebc2}
.freshness.fresh-stale{color:#9b3122;background:#f6dcd5}
.network-rules>.freshness{flex:0 0 auto}
.network-business{flex:1 1 100%;width:100%;display:flex;flex-direction:column;align-items:flex-start}
.network-business>.requirement-block{width:100%}
.branch-card>.freshness{display:inline-flex}
.queue-unknown{color:#9a9e90;font-weight:600}
.known-dot.known.fresh-today{background:#7d995a}
.known-dot.known.fresh-yesterday{background:#d7a928}
.known-dot.known.fresh-stale{background:#c6503d}
.log-entry-link{cursor:pointer;border-radius:4px}
.log-entry-link:hover{background:#ecebe3}
.log-entry-link:focus-visible{outline:3px solid #318597;outline-offset:2px}

/* Applications: service card stages, map highlights (active player only), player-card list. */
.service-account.is-invited{background:#e6eef4}
.service-account.is-invited .service-account-status{color:#2f6f8f}
.service-account.is-requested .service-account-status{color:#a8682a}
.service-account.is-pending .service-account-status{color:#7b7e74}
.service-attach{background:#cc8a24;border-color:#cc8a24;box-shadow:0 0 0 3px #f4d99a}
.service-actions.is-attaching .service-account:not(:has(.service-attach)){opacity:.55}
.map .node.node-requested>rect{stroke:#cc8a24;stroke-width:3}
.map .node.current.node-requested>rect{fill:#30382c}
.node-request-badge rect{fill:#fff0c5;stroke:#cc8a24;stroke-width:1.5}
.node-request-badge path{stroke:#a8682a;stroke-width:1.4;fill:none}
.application-list{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;font-size:11px;color:var(--muted)}
.application-item{display:inline-flex;align-items:center;gap:4px}
.application-item.is-invited{color:#2f6f8f;font-weight:600}
.application-item.is-requested{color:#a8682a}
.day-transition-invitations{font-weight:600}
.service-account.is-refused,.service-account.is-cancelled{background:#f6dcd6;box-shadow:inset 0 0 0 2px #b84b27}
.service-account.is-refused .service-account-status,.service-account.is-cancelled .service-account-status{color:#a3341a;font-weight:700}
.service-refusal-reason{margin:6px 0 10px;font-size:13px;color:#7d2a17}
.service-acknowledge{background:#b84b27;border-color:#b84b27;justify-content:center}
.service-actions.is-confirming .service-account:not(.is-refused):not(.is-opened){opacity:.55}
/* Nothing to do at this counter: grey, informational. */
.service-queue.is-idle:disabled{background:#eceee5;border-color:#dcdfd3;color:#5f6658;cursor:default}
.service-queue.is-idle>.service-symbol,.service-queue.is-idle small,.service-queue.is-idle .service-queue-progress{color:#868d7b}
.service-queue.is-idle .service-dots i.is-filled{background:#9aa08f}
.service-account.is-opened{background:#dfecd2;box-shadow:inset 0 0 0 2px #507334}
.service-account.is-opened .service-account-status{color:#3f6526;font-weight:700}
.service-celebrate{background:#507334;border-color:#507334;justify-content:center}
.sheet-queue{display:inline-flex;align-items:center;flex-shrink:0;margin-left:2px}
.sheet-queue .queue-icons{width:auto;height:18px}
/* Network clients are greeted in green. */
.service-queue.is-idle.is-client:disabled{background:#e5edd8;border-color:#e5edd8;color:#507334}
.service-queue.is-idle.is-client>.service-symbol,.service-queue.is-idle.is-client small,.service-queue.is-idle.is-client .service-queue-progress{color:#507334}
.service-queue.is-idle.is-client .service-dots i.is-filled{background:#698b48}
/* Idle today: nothing this player can do here before the day ends. Faded, dashed and colorless; tokens stay vivid, the point stays clickable. */
.map .node.node-idle:not(.current)>rect{fill:#f4f4ef;stroke:#c9ccbe;stroke-dasharray:5 4}
.map .node.node-idle:not(.current)>:not(rect):not(circle):not(.token-number):not(.node-movement):not(.node-pending-badge):not(.token-busy){opacity:.4;filter:grayscale(1)}
.map .node.node-idle.legal:not(.current)>rect{fill:#eef2e6;stroke:#a9b893}
.node-pending-badge circle{fill:#e3eef4;stroke:#2f6f8f;stroke-width:1.5}
.node-pending-badge path{fill:none;stroke:#2f6f8f;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.node-invited-badge circle{fill:#ffcc2e;stroke:#8a5a00;stroke-width:1.5}
.node-invited-badge path{fill:none;stroke:#3b2a00;stroke-width:2.4;stroke-linecap:round}
.node-invited-badge circle.dot{fill:#3b2a00;stroke:none}
/* Scouting: a read-only look at any location from afar. The toggle sits at the map's bottom-left corner. */
.board{position:relative}
.movement-guide{justify-content:space-between;align-items:flex-start;padding-top:12px}
.map-status{display:flex;align-items:center;gap:9px;padding:6px 12px 6px 6px;background:#fffdf6;border:1px solid #d8dbcc;border-radius:999px;box-shadow:0 2px 8px #2b31220f}
.map-status-line{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.map-status-day{font:600 10px 'DM Sans',sans-serif;letter-spacing:1px;text-transform:uppercase;color:#4c5543}
.map-status .clock{display:inline;font:600 15px 'Space Grotesk',sans-serif;letter-spacing:-.3px}
.map-status-date{display:block;font-size:10px;line-height:1.3;color:var(--muted);white-space:nowrap}
.movement-preview{padding-top:6px}
.scout-toggle{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 11px 5px 7px;border-radius:999px;font-size:12px;font-weight:600;color:#3d5f74;background:#fff;border-color:#c7d3da}
.scout-toggle .movement-icon{width:22px;height:22px}
.scout-toggle.is-on{color:#fff;background:#2f6f8f;border-color:#2f6f8f}
.scout-toggle:focus-visible{outline:3px solid #8cc0d6;outline-offset:2px}
.movement-guide.is-scouting .movement-preview{color:#2f6f8f}
.scout-icon{fill:none}
.node-movement-scout{color:#2f6f8f}
.map.scouting .node{cursor:zoom-in}
.map.scouting .node:not(.current):hover>rect{stroke:#2f6f8f;stroke-width:2.5}
.map.scouting .node:focus-visible>rect{stroke:#2f6f8f;stroke-width:3}
.map.scouting .node.scout-target>rect{stroke:#2f6f8f;stroke-width:3.5;stroke-dasharray:none;filter:drop-shadow(0 0 5px #2f6f8f66)}
/* The Scouting screen leaves the map live: no blur, no backdrop; on wide screens it docks to the right. */
.view-body.has-scout-sheet>.board{opacity:.92}
.sheet-scout{justify-self:end;width:min(440px,calc(100% - 24px))}
.sheet-scout-tag{display:inline-flex;align-items:center;gap:3px;margin-left:4px;padding:2px 8px 2px 4px;border-radius:999px;background:#e3eef4;color:#2f6f8f;font-size:11px;font-weight:600;flex-shrink:0}
.sheet-scout-tag .movement-icon{width:16px;height:16px}
.scout-bank .intel-content{padding:16px 18px 18px}
.branch-grid.branch-grid-single{grid-template-columns:1fr}
.scout-location{padding:18px 20px}
@media(max-width:740px){.sheet-scout{justify-self:stretch;width:auto}}
/* The active player's applications at a branch: status only, no actions. */
.branch-applications{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line)}
.branch-applications h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.branch-applications ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.branch-application{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;padding:5px 8px;border-radius:6px;background:#eef1e6}
.branch-application-type{font-weight:700}
.branch-application small{color:var(--muted)}
.branch-application.is-waiting strong{color:#2f6f8f}
.branch-application.is-invited{background:#fff4cf}.branch-application.is-invited strong{color:#8a5a00}
.branch-application.is-requested strong{color:#a8682a}
.branch-application.is-cancelled{background:#f6dcd6;box-shadow:inset 0 0 0 1.5px #b84b27}
.branch-application.is-cancelled strong{color:#a3341a}.branch-application.is-cancelled small{color:#7d2a17}
.application-item.is-cancelled{color:#a3341a;font-weight:600}
.application-item.is-cancelled small{font-weight:400;color:#7d2a17}
.application-item.is-cancelled small::before{content:'· '}
/* Documents sheet: the active player's card without its own frame. */
.documents-pane{padding:4px 20px 20px}
.documents-pane .player-card{border:0;background:transparent;padding:0}
.documents-pane .player-title{display:none}
.sheet-player{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font:600 12px 'Space Grotesk',sans-serif;letter-spacing:0}
@media(max-width:740px){.documents-pane{padding:0 14px 16px}}
/* Document work: two titled groups, without the page heading and its divider. */
.action-section.document-work{border-top:0;margin-top:0;padding-top:0}
/* The placeholder text may carry an explicit line break (\n in i18n). */
.service-account-placeholder{white-space:pre-line}
/* Choosing the day's starting point: any node, flag badge, same accent as the free walk. */
.node-movement-chooseStart,.movement-option-chooseStart{color:#607c42}
.view-tab-nowhere{display:grid;place-items:center;width:20px;height:20px;border-radius:4px;border:1.5px dashed currentColor;font:700 12px 'Space Grotesk',sans-serif}
.view-tab:disabled{background:transparent;border-color:transparent}
/* Day change: two cards in the same spot, one after the other (evening summary 0–2.6s, morning 2.6–5.6s). */
.day-transition{position:fixed;z-index:20;top:200px;left:50%;transform:translateX(-50%);width:min(400px,calc(100vw - 32px));display:grid;pointer-events:none}
.day-transition>.day-transition-card{grid-area:1/1;align-self:start}
.day-transition-card{padding:18px 22px 16px;text-align:center;background:#fffdf6;color:#282c28;border:1px solid #d8dbcc;border-radius:12px;box-shadow:0 18px 44px #2b312224,0 2px 8px #2b31221a}
.day-transition-evening{border-top:4px solid #8f9585;animation:day-card 2.6s both}
.day-transition-morning{border-top:4px solid var(--orange);animation:day-card 3s 2.6s both}
.day-transition-kicker{font:600 10px 'DM Sans',sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
.day-transition-day{margin:4px 0 2px;font:500 30px/1.15 'Space Grotesk',sans-serif;letter-spacing:-1px;color:#4c5543}
.day-transition-day strong{font-weight:600}
.day-transition-evening .day-transition-day strong{color:#4c5543}
.day-transition-morning .day-transition-day strong{color:var(--orange)}
.day-transition-card p{margin:8px 0 4px;font-size:13px;line-height:1.5}
.day-transition-card small{display:block;font-size:11px;color:var(--muted)}
.day-summary{list-style:none;margin:12px 0 0;padding:0;text-align:left}
.day-summary li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 2px;border-top:1px dashed var(--line);font-size:13px}
.day-summary li:last-child{border-bottom:1px dashed var(--line)}
.day-summary strong{font:600 18px 'Space Grotesk',sans-serif;letter-spacing:-.4px}
.day-summary-opened strong{color:#4c7337}
.day-summary-refused strong{color:#a3341a}
@keyframes day-card{0%{opacity:0;transform:translateY(-14px)}12%,86%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@keyframes day-card-static{0%,99%{opacity:1}100%{opacity:0}}
@media(max-width:440px){.day-transition{top:150px}.day-transition-card{padding:16px 18px 14px}.day-transition-day{font-size:26px}}
@media(prefers-reduced-motion:reduce){.day-transition-evening{animation:day-card-static 2.6s steps(1) both}.day-transition-morning{animation:day-card-static 3s 2.6s steps(1) both}.day-changing .board .map,.day-changing .clock{animation:none}}
.day-transition-card .day-transition-date{margin:0 0 2px;font-size:11px;color:var(--muted)}
.movement-guide{flex-wrap:wrap;row-gap:8px}
.movement-guide>.movement-preview{flex:1 1 auto;min-width:0}
/* Bottom row of the map: the scout toggle on the left, the movement legend on the right, all on one line. */
.map-bottom{position:absolute;left:16px;right:16px;bottom:16px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}
.map-bottom>*{pointer-events:auto}
.map-bottom .movement-preview{flex-wrap:nowrap;justify-content:flex-end;gap:14px;padding:0;background:#fffdf6e6;border-radius:999px;padding:4px 10px}
.movement-option{white-space:nowrap}
@media(max-width:740px){.map-bottom{left:10px;right:10px;bottom:10px;gap:6px}.map-bottom .movement-preview{gap:8px;padding:3px 8px;font-size:10px}.map-bottom .movement-icon{width:20px;height:20px}.movement-option{gap:4px}}
.map-bottom-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex-shrink:0}
.map-bottom-actions>*{pointer-events:auto}
.map-bottom .movement-preview{align-self:flex-end}
.map-bottom-actions:has(.scout-toggle.is-on)+.movement-preview{color:#2f6f8f}
.coffee-button{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 11px 5px 7px;border-radius:999px;font-size:12px;font-weight:600;color:#7a4a22;background:#fff;border-color:#e0cdb8}
.coffee-button .movement-icon{width:22px;height:22px}
.coffee-button:hover:not(:disabled){background:#fbf3ea}
.coffee-button:focus-visible{outline:3px solid #e0b98f;outline-offset:2px}
.coffee-button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:740px){.map-bottom-actions{gap:4px}.coffee-button{padding:4px 9px 4px 5px;font-size:11px;gap:4px}.coffee-button .movement-icon{width:18px;height:18px}}
@media(max-width:380px){.coffee-button{padding:4px 7px 4px 4px;font-size:10.5px}}
.board{padding-bottom:58px}
@media(max-width:740px){.board{padding-bottom:50px}}
/* Phones: the whole game fits one screen (100dvh tracks the browser bars), no page scroll.
   Fixed chrome: header 52, game padding 2×6, window header 44, panel borders 2 → the board gets the rest; the map flexes. */
@media(max-width:740px){
 header{height:52px;min-height:0;padding:0;flex-wrap:nowrap;margin:0 3%}
 header .local-mode{display:none}
 .header-right{gap:6px}.header-right .quiet{padding:6px 8px}.language-picker select{padding:5px 4px;font-size:12px}
 .game{padding:6px 3%}
 .window-header{padding:0 6px;height:44px;flex-wrap:nowrap}
 .view-tabs{align-self:stretch;width:100%}.view-tab{padding:8px 4px 10px;justify-content:center}
 .map-heading-hint{display:none}
 .board{height:calc(100dvh - 110px);display:flex;flex-direction:column;padding-bottom:0}
 .movement-guide{padding:8px 10px 4px}
 .board .map{flex:1 1 0;min-height:0;width:100%;height:auto;aspect-ratio:auto;max-height:none}
 .map-bottom{position:static;flex:0 0 auto;padding:4px 8px 8px}
 .map-bottom .movement-preview{gap:8px;padding:2px 4px;font-size:9.5px;background:none}
 .map-bottom .movement-icon{width:18px;height:18px}
 .scout-toggle{padding:4px 9px 4px 5px;font-size:11px;gap:4px}.scout-toggle .movement-icon{width:18px;height:18px}
 .view-body.has-sheet,.view-body.has-scout-sheet{max-height:calc(100dvh - 110px);overflow:auto}
}
@media(max-width:740px){
 header .brand{font-size:15px;gap:8px;white-space:nowrap;letter-spacing:-.6px}header .logo{width:24px;height:24px;font-size:20px}
 .header-right{flex-wrap:nowrap}.header-right .quiet{font-size:10px;padding:5px 7px;white-space:nowrap}.language-picker select{font-size:11px;padding:4px 2px}
}
@media(max-width:380px){
 .map-bottom{gap:4px;padding:4px 4px 8px}.map-bottom .movement-preview{gap:6px;padding:2px;font-size:9px}.movement-option{gap:3px}
 .scout-toggle{padding:4px 7px 4px 4px;font-size:10.5px}
}
@media(max-width:380px){header{gap:4px}.header-right{gap:4px}.header-right .quiet{padding:5px 6px}header .brand{font-size:14px;gap:6px}}
/* Phones: labeled document cards fill the tray in equal columns, three on a typical phone (≥306px tray), two on narrower ones.
   98px is the narrowest card that still fits the longest label line ("РЕГИСТРАЦИИ ИП") without breaking. */
@media(max-width:740px){
 .document-tokens:has(>.doc-icon:not(.doc-compact)){display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:6px}
 .document-tokens>.doc-icon:not(.doc-compact){width:auto;flex-basis:auto;padding:6px 4px}
}
/* Narrow phones (≈360–392px: base Samsung Galaxy S, iPhone mini/SE): a bit less padding and a slightly smaller label keep three columns. */
@media(max-width:392px){
 .sheet{margin:4px}.sheet .actions{padding:12px 8px}
 .document-tokens:has(>.doc-icon:not(.doc-compact)){grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:5px}
 .document-tokens>.doc-icon:not(.doc-compact){padding:6px 2px}
 .doc-icon:not(.doc-compact) .doc-label{font-size:9.5px}
 .doc-icon[data-document="O10"] .doc-label{font-size:9px}
}
/* Long actions: turn handover stack (busy toasts above the final banner), solo clock jump, busy token badge. */
.turn-handoff-stack{position:fixed;z-index:30;transform:translateX(-50%);width:max-content;max-width:92vw;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.turn-handoff-stack .turn-handoff{position:relative;top:auto;left:auto;animation:handoff-stacked var(--handoff-duration,1.9s) cubic-bezier(.22,.61,.24,1) both}
.turn-handoff-busy-slot{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:max-content;max-width:min(92vw,620px)}
.turn-handoff-stack .turn-handoff-token{flex-shrink:0}
.turn-handoff-stack .turn-handoff.is-busy{white-space:normal;text-wrap:balance}
.turn-handoff-stack.no-final .turn-handoff-busy-slot{position:static;transform:none}
.turn-handoff-stack .turn-handoff.is-busy{padding:9px 16px 9px 9px;gap:10px;opacity:.96;animation:busy-toast 1.2s ease-out both}
.turn-handoff.is-busy .turn-handoff-token{width:30px;height:30px;font-size:15px;animation:none}
.turn-handoff.is-busy strong{font:500 15px 'DM Sans',sans-serif;letter-spacing:0}
.turn-handoff.is-solo strong{font:500 17px 'DM Sans',sans-serif;letter-spacing:0}
@keyframes handoff-stacked{0%{opacity:0;transform:translateY(-14px) scale(.94)}8%{opacity:1;transform:none}88%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@keyframes busy-toast{0%{opacity:0;transform:translateY(12px)}15%{opacity:1;transform:none}70%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-22px)}}
.clock-jump .clock{animation:day-clock-reset 1.9s ease-out both}
.map .token-busy circle{fill:#fffdf6;stroke:#2f3a2f;stroke-width:1.2}
.map .token-busy path{fill:none;stroke:#2f3a2f;stroke-width:1.1;stroke-linecap:round}
.service-queue.is-late .service-symbol{color:#868d7b}
.document-work-actions{display:flex;flex-direction:column}
.document-detail .document-work-actions .quiet{min-height:36px;font-size:12px;border:1px solid #d5d7cc}
@media(max-width:740px){.turn-handoff-stack .turn-handoff.is-busy strong{font-size:13px}.turn-handoff-stack .turn-handoff{white-space:normal;max-width:92vw}}
@media(prefers-reduced-motion:reduce){.turn-handoff-stack .turn-handoff{animation:handoff-static var(--handoff-duration,1.9s) steps(1) both;transform:none}.turn-handoff-stack .turn-handoff.is-busy{animation:handoff-static 1.2s steps(1) both}.clock-jump .clock{animation:none}}

.nick-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.nick-field{display:flex;align-items:center;gap:8px;border:1px solid #d5d7cc;border-radius:5px;padding:5px 8px;background:#fff}.nick-field:focus-within{outline:3px solid #318597;outline-offset:1px}.nick-field input{border:0;background:transparent;font:inherit;font-size:13px;min-width:0;flex:1;outline:0}.nick-field .avatar{flex:none}
.setup-cards{display:flex;flex-direction:column;gap:16px;max-width:470px}.setup-cards .setup-card{margin-top:0}.setup-cards>.setup-card:first-child{margin-top:32px}.online-field{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted);flex:1;min-width:0}.online-field input{font:inherit;font-size:14px;color:#282c28;border:1px solid #d5d7cc;border-radius:5px;padding:10px 12px;background:#fff}.online-field input:focus-visible{outline:3px solid #318597;outline-offset:1px}.online-card .online-field{margin-top:4px}.join-row{display:flex;gap:8px;align-items:flex-end;margin-top:6px}.join-row button{white-space:nowrap}.room-code{font-family:'Space Grotesk',sans-serif;letter-spacing:-.5px;overflow-wrap:anywhere}.lobby>h1.room-code{font-size:clamp(36px,6vw,64px);margin:10px 0 14px}.lobby-link{display:flex;gap:8px;max-width:470px}.lobby-link input{flex:1;min-width:0;font:inherit;font-size:13px;border:1px solid #d5d7cc;border-radius:5px;padding:9px 11px;background:#fff;color:#55594f}.lobby-card{display:flex;flex-direction:column;gap:14px}.lobby-card h2 small{font-size:13px;margin-left:6px}.lobby-card h3{font-size:14px;color:var(--muted)}.lobby-people{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.lobby-person{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:14px}.lobby-person.is-away{opacity:.55}.lobby-token{width:26px;height:26px;border-radius:50%;background:var(--player,#c9ccbf);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.lobby-token.is-watching{background:#eceee5;color:#555;font-size:13px}.lobby-nick{font-weight:600;overflow-wrap:anywhere}.lobby-tag{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#7b7e74;border:1px solid var(--line);border-radius:10px;padding:1px 7px}.lobby-tag.is-you{color:#30382c;border-color:#84926a;background:#e6ebd9}.lobby-remove{margin-left:auto;padding:4px 9px}.lobby-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.lobby-actions .primary{flex:1;display:flex;justify-content:space-between;align-items:center}.seat-order ol{margin:18px 0}.room-chip{font-family:'Space Grotesk',sans-serif;font-size:12px;letter-spacing:.3px;border:1px solid #cfd2c5;border-radius:4px;padding:4px 8px}.turn-watch{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.turn-watch-token{width:22px;height:22px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font-size:11px}
.own-code{margin-top:8px;font-size:12px;color:var(--muted)}.own-code summary{cursor:pointer;width:max-content}.own-code[open] summary{margin-bottom:6px}
.stall-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 12px 0;padding:9px 12px;border-radius:7px;border:1px solid var(--line);background:#f1f2ea;font-size:13px}.stall-notice.is-warning{background:#fbe9e1;border-color:#e9a68a;color:#7c2d12}.stall-token{width:22px;height:22px;border-radius:50%;background:var(--player);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.stall-voters{display:flex;gap:4px;margin-left:auto}.stall-voter{width:20px;height:20px;border-radius:50%;border:2px solid var(--player);color:var(--player);display:grid;place-items:center;font-size:10px;font-weight:700;background:#fff}.stall-voter.is-agreed{background:var(--player);color:#fff}.stall-write-off{background:#fff;border-color:#e9a68a;color:#9a3412}.stall-write-off.is-chosen{background:#c2410c;border-color:#c2410c;color:#fff}
.finish-ranking{list-style:none;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:6px;text-align:left}.finish-ranking li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-weight:600}.finish-place{margin-left:auto;font-size:12px;color:var(--muted);font-weight:500}.finish-options{display:flex;gap:10px;margin:14px 0 6px}.finish-option{flex:1;display:flex;flex-direction:column;gap:6px;align-items:stretch}.finish-votes{display:flex;gap:4px;justify-content:center;min-height:26px}.restart-notice{background:#eef0e6}
