:root {
  color-scheme: dark;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  background: #10221f;
  --scale: 1;
  --portrait-width: 720px;
  --portrait-height: 1280px;
}
* { box-sizing: border-box; }
html, body { width: 100%; min-width: 0; height: 100%; margin: 0; overscroll-behavior: none; }
body { overflow: hidden; }
button, input { font: inherit; }
button { cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button:focus-visible, input:focus-visible { outline: 4px solid #f0b75a; outline-offset: 2px; }
#app-root {
  position: relative; display: flex; flex-direction: column; align-items: center;
  justify-content: center; width: 100%; height: 100vh; height: 100dvh;
  overflow: hidden; background: radial-gradient(ellipse at 50% 30%, #30554a, #10221f 75%);
}
#viewport-shell { flex-shrink: 0; width: var(--viewport-width, 720px); height: var(--viewport-height, 1280px);
  position: relative; overflow: hidden; box-shadow: 0 0 0 1px #99b8a54d, 0 5px 60px #0009;
  background: #e9e0c7; }
#game-stage {
  position: absolute; inset: 0 auto auto 0; width: var(--portrait-width);
  height: var(--portrait-height); transform: scale(var(--scale)); transform-origin: 0 0;
  overflow: hidden; color: #273d35; background:
    linear-gradient(145deg, #d8d2b1, #f5e9cf 40%, #d5dbc6);
  isolation: isolate; font-family: Georgia, "Times New Roman", serif;
}
.startup-banner {
  position: absolute; inset: 0; display: flex; align-items: center;
  flex-direction: column; justify-content: center; gap: 18px; font-size: 32px;
  text-align: center; background: linear-gradient(#102a23, #476853); color: #f7ebca;
}
.startup-banner span { font-size: 18px; }
.screen-layer { position: absolute; inset: 0; }
.screen-element {
  position: absolute; display: flex; align-items: center; justify-content: center;
  overflow: visible; padding: 0; margin: 0; border: 0; background: transparent;
  color: #253d35; line-height: 1.1;
}
.screen-element.screen-control { cursor: pointer; }
.screen-element.screen-control:hover { filter: brightness(1.03); }
.screen-element img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.screen-element .fallback-surface { width: 100%; height: 100%; background: #efe4c9cc; border: 2px solid #9c997d; border-radius: 12px; }
.screen-element .fallback-label { position: relative; padding: 6px; display: block; width:100%; text-align: center; font-size: 22px; font-weight: 600; text-shadow: 0 1px 0 #fffb; }
.screen-element.is-decorative { pointer-events: none; }
.screen-element.is-interactive { user-select: none; }
.screen-element[data-id="login.background"],.screen-element[data-id="loading.background"] { background: linear-gradient(#60816a, #ddd9be 50%, #e9d8b8); }
.screen-element[data-id="login.form.panel"] .fallback-surface { background: #f2e6d1e8; border: 3px solid #bba77a; }
.screen-element[data-id="login.username"],.screen-element[data-id="login.password"] { pointer-events: auto; }
.login-input {
  width: 100%; height: 100%; padding: 1px 10px;
  border: 0; outline: 0; border-radius: 5px; background: transparent;
  color: #263d36; font-size: 23px; font-family: Georgia, serif;
}
.login-input::placeholder { color: #57665a; opacity: .9; }
.login-text { font-size: 21px; text-align: center; width: 100%; padding: 6px; font-weight: 550; }
.login-heading { font-size: 34px; letter-spacing: .025em; font-weight: 700; }
.login-link { text-decoration: underline; color: #174d3e; font-size: 19px; }
.login-provider { font-size: 22px; font-weight: 600; }
.login-provider[disabled] { opacity: .8; }
.login-provider[disabled]::after { content: " • nicht angebunden"; font-size: 14px; }
.login-main-action { font-size: 26px; color: #fff9dc; text-shadow: 0 1px 2px #0007; }
.main-header { position: absolute; z-index: 180; inset: 0 0 auto; height: 114px;
  display:flex; align-items: center; gap: 10px; padding: 8px 18px;
  background: linear-gradient(#1e493aee,#37674be8); color: #fff3d0;
  box-shadow: 0 3px 10px #0005; font-family: "Segoe UI", sans-serif;
}
.header-profile { width: 210px; height: 70px; border: 1px solid #d4b67d88;
  border-radius: 15px; background: #17342b88; display:flex; align-items: center;
  gap: 8px; justify-content: center; font-size: 19px; font-weight: 650; }
.header-currencies { display:flex; flex:1; gap:8px; justify-content:flex-end; }
.currency { background:#18392fb0;border:1px solid #d4b67d66;padding:12px 8px;border-radius:12px;font-size:19px; }
.header-menu { width:60px; height:58px; font-size:32px; color:#fff3d0; border:1px solid #d4b67d77; border-radius:12px;background:#1e3c30; }
.main-footer { position: absolute; z-index: 190; bottom:0; left:0; width:720px; height:103px;
  display: grid; grid-template-columns:repeat(6,1fr); padding:6px;
  background: linear-gradient(#24513c,#19372e);
  border-top: 3px solid #ad8e56; color: #fff0c6; font-family: "Segoe UI", sans-serif;
}
.main-footer button { color:inherit; background:transparent; border:0; border-radius:12px; font-size:19px; font-weight:650; }
.main-footer button.is-active { color:#fff8de; background: #e8c1784c; outline:1px solid #caa261a8; }
.main-footer button:disabled {opacity:.55;cursor:not-allowed;}
.main-footer .nav-icon { display:block; margin:0 auto 6px; height:34px; font-size:29px; }
.main-menu-popover {
  position:absolute;z-index:210;right:16px;top:110px;width:312px;padding:12px; border-radius:14px;
  background:#f6ead2; border:3px solid #af8c5e;box-shadow:0 12px 35px #0008;
}
.main-menu-popover button { display:block; width:100%;text-align:left;padding:15px;font-size:22px;
  color:#2a4738;background:transparent;border:0;border-bottom:1px solid #bba77b; }
.solo-select { pointer-events:auto; width:100%;height:100%;display:flex;align-items:center;gap:10px;justify-content:center;padding:10px; }
.solo-select button { border:2px solid #a99064;color:#335347;border-radius:12px;background:#f3e6ce;
  padding:14px;font-size:19px;min-height:62px;flex:1; }
.solo-select button.active { background:#285f46;color:#fff3d6;border-color:#d7b878; }
.solo-select button:disabled {opacity:.4;cursor:not-allowed;}
.solo-help-button {width:100%;height:100%;font-size:18px;color:#284b3a;background:#f4e6c8;border:2px solid #a89166;border-radius:12px; }
.solo-help-button.active {background:#2b5d45;color:#fff1d4;}
.solo-start {width:100%;height:100%;border-radius:18px;color:#f8efce;background:#2c6247;border:3px solid #c6a368;font-size:30px;font-weight:700;}
.board-wrap {width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center;background:#eadfbd;border:4px solid #846846; }
.board-grid {width:100%;height:100%;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));}
.board-cell { min-width:0; min-height:0; position:relative; display:flex;align-items:center;justify-content:center;
  background:#fff8e7; color:#20493a; padding:0;border:1px solid #b7ac90; font-family:Georgia,serif; font-size:42px; }
.board-cell:nth-child(3n):not(:nth-child(9n)) {border-right: 3px solid #876b48;}
.board-cell[data-row="2"],.board-cell[data-row="5"] { border-bottom:3px solid #876b48; }
.board-cell.given { background:#e9e1c8; color:#263e36; font-weight:bold;}
.board-cell.selected {background:#a8d8be!important; box-shadow: inset 0 0 0 3px #31654c;}
.board-cell.related:not(.selected) {background:#e0f0dc;}
.board-cell.conflict {background:#f3b4a9!important;color:#8e1f1b;}
.cell-notes {display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);
  width:100%;height:100%;font-family:"Segoe UI",sans-serif;font-size:15px;color:#3d6b5a;line-height:1; }
.cell-notes span {display:flex;align-items:center;justify-content:center;}
.number-tray {display:grid;grid-template-columns:repeat(9,1fr);width:100%;height:100%;gap:5px;padding:4px; }
.number-tray button {border:2px solid #bc9a5e;background:#f3e7ca;border-radius:10px;font-family:Georgia,serif;font-size:34px;color:#254c3a;}
.game-tool {width:100%;height:100%;border:2px solid #b39560;background:#eee1c4;border-radius:10px;font-size:20px;color:#21483a;}
.game-tool.is-active {background:#2c6247;color:#fff5d7;}
.game-status {display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 15px;font-size:19px;gap:14px;background:#e6d9b2;border-radius:8px;}
#toast-message {position:absolute;z-index:400;bottom:126px;left:34px;width:652px;padding:18px 22px;
  background:#163b2df5;color:#f8e6bd;box-shadow:0 7px 25px #0007;border:2px solid #d4b67e;border-radius:13px;font:22px/1.35 "Segoe UI",sans-serif;text-align:center;}
#toast-message[hidden],#fatal-error[hidden] {display:none;}
#fatal-error { position:absolute;z-index:1000;max-width:min(90vw,700px);padding:20px;background:#501c21;color:#fff5ef;border:2px solid #dba9a7;border-radius:10px;line-height:1.4;font:16px "Segoe UI",sans-serif; }
#environment-mark {position:absolute;right:10px;bottom:8px;font:12px "Segoe UI",sans-serif;color:#bfd1c3;opacity:.75;pointer-events:none;}
.screen-unavailable {font-size:18px;font-weight:650;border:2px dashed #b39163;background:#f7e9d5aa;color:#31503c;}
@media (max-width:550px) {
  #environment-mark {font-size:10px;bottom:3px;}
}

/* Variant rules are drawn from Rust metadata, not inferred from visual assets. */
.board-cell.x-diagonal{background-image:linear-gradient(135deg,#bacce066,#bacce066);}
.cage-outline{position:absolute;inset:4px;pointer-events:none;z-index:2;}
.cage-sum{position:absolute;top:5px;left:7px;font:600 12px/1 "Segoe UI",sans-serif;background:#fff8e7e0;color:#3b3326;padding:1px 2px;z-index:3;pointer-events:none;}
.solo-select button{min-width:0;font-size:18px;padding:10px 5px;}

.pvp-panel{position:absolute;top:142px;left:40px;width:640px;padding:25px;background:#f8ecd7;border:2px solid #a08659;border-radius:18px;font:22px/1.4 "Segoe UI",sans-serif;color:#274333;}
.pvp-panel h1{margin:0 0 12px;font-size:32px;}.pvp-panel p{margin:8px 0 16px;}
.pvp-action,.pvp-select,.pvp-code-input{display:block;width:100%;margin:12px 0;padding:16px;border-radius:10px;border:2px solid #ad9465;font-size:23px;min-height:60px;}
.pvp-action{background:#2f674b;color:#fff1d4;}.pvp-action:disabled{opacity:.5;cursor:default;}
.pvp-select,.pvp-code-input{background:#fff9ed;color:#223d2d;}
.pvp-code{font:700 38px monospace;letter-spacing:4px;text-align:center;user-select:all;background:#e5dcc4;padding:20px;}
.pvp-countdown{font-size:30px;font-weight:bold;text-align:center;}.pvp-status{font-size:19px;color:#7e3623;}
.game-tool:disabled{opacity:.45;cursor:default;}

.availability-note{position:absolute;bottom:107px;left:30px;width:660px;padding:12px;background:#ffeac5;border:1px solid #a77f39;color:#503914;font:18px/1.2 "Segoe UI",sans-serif;z-index:240;border-radius:9px;pointer-events:none;}
.solo-start:disabled{filter:grayscale(1);opacity:.5;cursor:not-allowed;}

/* Real Solo pause/result screens: shared heading shell, no speculative rewards. */
.solo-pause-control {
  position:absolute;z-index:205;top:126px;right:28px;
  min-width:125px;padding:12px 20px;border-radius:11px;
  border:2px solid #c3a371;background:#285c45;color:#fff4d6;
  font:700 21px/1.2 "Segoe UI",sans-serif;
}
.solo-state-panel {
  position:absolute;z-index:120;top:176px;left:36px;width:648px;
  max-height:940px;overflow:auto;padding:40px 30px;
  background:#f8ebd2;color:#254638;border:3px solid #ad8c5d;
  border-radius:19px;text-align:center;
  font:24px/1.5 "Segoe UI",sans-serif;
}
.solo-state-panel h1 {font:700 40px/1.2 Georgia,serif;margin:0 0 26px;}
.solo-state-panel p {margin:16px 0;}
.solo-state-action {
  display:block;width:100%;padding:19px;margin:25px 0 0;
  background:#285c45;color:#fff2d6;border:2px solid #bd9b62;
  border-radius:12px;font:600 25px "Segoe UI",sans-serif;
}
.solo-result-mode {font-weight:700;}
.solo-result-note {font-size:18px;color:#6a5137;}

/* Functional settings screens use the same global header/footer shell. */
.settings-state-panel {
 position:absolute;z-index:120;top:165px;left:35px;width:650px;
 max-height:945px;overflow:auto;padding:30px;
 background:#f7ebd4;color:#274433;border:3px solid #a68a5c;
 border-radius:18px;text-align:center;font:22px/1.4 "Segoe UI",sans-serif;
}
.settings-state-panel h1 {font:700 39px Georgia,serif;margin:5px 0 28px;}
.settings-action {
 display:block;width:100%;padding:19px;margin:17px 0;border:2px solid #ac9165;
 border-radius:13px;background:#f0dfbf;color:#2b4d37;
 font:600 24px "Segoe UI",sans-serif;
}
.settings-action.is-active {background:#2d6548;color:#fff5dd;}
.settings-detail {font-size:18px;color:#75583f;}

.header-profile {font:inherit;color:inherit;cursor:pointer;text-align:center;}
.profile-state-panel {
 position:absolute;z-index:120;top:165px;left:35px;width:650px;
 max-height:945px;overflow:auto;padding:30px;
 background:#f7ebd4;color:#274433;border:3px solid #a68a5c;
 border-radius:18px;text-align:center;font:21px/1.45 "Segoe UI",sans-serif;
}
.profile-state-panel h1 {font:700 39px Georgia,serif;margin:5px 0 28px;}
.profile-account-id {font-family:monospace;font-size:19px;overflow-wrap:anywhere;}
.profile-action {
 display:block;width:100%;padding:19px;margin:17px 0;border:2px solid #ac9165;
 border-radius:13px;background:#2c6047;color:#fff3d6;
 font:600 24px "Segoe UI",sans-serif;
}
.profile-action:disabled{opacity:.6;cursor:wait;}
.profile-notice {font-size:18px;color:#70563e;}

/* ST-CHG-2026-1093: read-only approved-authoring gate, real Story assets */
.story-screen{
  position:absolute;z-index:118;left:20px;right:20px;top:128px;bottom:109px;
  padding:16px 19px 28px;overflow-y:auto;overscroll-behavior:contain;
  background:linear-gradient(#f7ebd5,#e7ddc2);
  color:#234535;border:3px solid #a78c5d;border-radius:20px;
  font:21px/1.3 "Segoe UI",sans-serif;scrollbar-width:thin;
}
.story-screen h1{font:700 38px/1.18 Georgia,serif;margin:19px 6px 15px;text-align:center;}
.story-screen h2{font:700 27px/1.22 Georgia,serif;margin:20px 0 14px;}
.story-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;}
.story-tab{background:#e2d2af;color:#254836;border:1px solid #ad9160;
  border-radius:8px;font:600 16px/1.2 "Segoe UI",sans-serif;min-height:51px;padding:6px 2px;}
.story-tab.is-active{background:#285d46;color:#fff0d0;}
.story-draft-notice{background:#f4e3bd;border-left:5px solid #996736;
  border-radius:7px;padding:12px;margin:12px 3px 18px;color:#715232;
  font-size:17px;line-height:1.35;}
.story-world-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.story-world-card,.story-area-card{min-width:0;overflow:hidden;border:2px solid #b9a06e;
  border-radius:12px;background:#eee1c5;color:#2b4a3a;display:flex;flex-direction:column;
  align-items:stretch;text-align:left;padding:5px;gap:5px;}
.story-world-image{display:block;width:100%;height:132px;object-fit:contain;border-radius:7px;
  background:radial-gradient(#bdc6a4,#a19d70);}
.story-world-name{font:700 20px/1.25 Georgia,serif;padding:4px 6px;}
.story-world-state{padding:4px 6px 8px;font-size:15px;color:#6f5434;}
.story-area-list{display:flex;flex-direction:column;gap:14px;margin:14px 0;}
.story-area-card{min-height:105px;display:grid;grid-template-columns:155px minmax(0,1fr);
  grid-template-rows:auto auto;gap:4px 14px;padding:8px;align-items:center;}
.story-area-thumb{grid-row:1/3;width:155px;height:100px;object-fit:contain;
  background:#a7b59a;border-radius:6px;}
.story-area-label{font:700 21px/1.2 Georgia,serif;}
.story-area-meta{font-size:16px;color:#675239;}
.story-action,.story-map-bar-action{display:block;padding:13px 17px;margin:10px 0;
  border:2px solid #a78959;border-radius:10px;background:#2e644b;color:#fff0d4;
  font:600 20px/1.3 "Segoe UI",sans-serif;}
.story-empty{font-size:21px;line-height:1.4;margin:24px 0;padding:18px;
  border:1px dashed #98794c;border-radius:12px;}
.story-map-bar{display:flex;gap:12px;}
.story-map-bar-action{flex:1;font-size:19px;margin:3px 0 13px;}
.story-panel-select{display:flex;flex-wrap:wrap;gap:9px;margin:8px 0;}
.story-panel-button{flex:1;min-width:120px;min-height:42px;border:1px solid #ad9160;
  border-radius:8px;background:#e2d4b9;color:#37543e;padding:8px 12px;font-size:16px;}
.story-panel-button.is-active{background:#32694d;color:#fff0d9;}
.story-map-tools{display:flex;align-items:center;gap:9px;margin:13px 0 8px;}
.story-zoom-button{min-height:45px;border:1px solid #af9060;background:#fff1d5;
  border-radius:9px;padding:6px 12px;font:700 20px/1.15 "Segoe UI",sans-serif;}
.story-zoom-slider{min-width:0;flex:1;height:28px;accent-color:#28684a;}
.story-map-zoom-value{min-width:61px;text-align:center;font-size:18px;}
.story-map-viewport{height:570px;position:relative;overflow:hidden;touch-action:none;
  background:repeating-linear-gradient(0deg,#d4d7bf,#d4d7bf 24px,#c7ceb1 25px),
  #d2d6bf;border:3px solid #a18558;border-radius:13px;}
.story-map-scene{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform;}
.story-map-artwork{position:absolute;inset:0;display:block;width:100%;height:100%;
  object-fit:contain;pointer-events:none;user-select:none;}
.story-map-paths{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.story-path{stroke:#4c644e;stroke-width:3;stroke-linecap:round;opacity:.75;}
.story-path-branch{stroke:#8a5b3d;stroke-dasharray:11 9;}
.story-path-convergence{stroke:#426b83;stroke-width:4;}
.story-map-node{position:absolute;transform:translate(-50%,-50%);border-radius:50%;
  min-width:49px;height:49px;background:#f7e5b7;color:#2e503b;
  border:3px solid #af8b52;font:700 18px/1 "Segoe UI",sans-serif;
  box-shadow:0 2px 9px #122c2799;z-index:3;}
.story-map-node:hover,.story-map-node:focus-visible{background:#26684b;color:#fff8df;}
.story-map-footnote{font-size:16px;color:#68523a;margin:12px 4px;}
.story-level-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:18px 0;}
.story-level-button{min-width:0;min-height:64px;padding:8px 3px;
  background:#e1d1ae;color:#244d39;border:2px solid #ad8e60;border-radius:11px;
  font:700 16px/1.2 "Segoe UI",sans-serif;}
.story-level-button.is-active{background:#2d6149;color:#fff0d2;}
.story-level-detail,.story-supplement-detail,.story-dialogue-card{
  background:#fff5df;border:2px solid #b9a275;border-radius:15px;padding:20px 19px;
  margin:16px 1px;}
.story-level-detail p{overflow-wrap:anywhere;}
.story-dialogue-select{display:block;width:100%;min-height:60px;padding:12px;
  border:2px solid #ab9060;border-radius:9px;background:#fff2d7;color:#2d4d3b;
  font:20px/1.3 "Segoe UI",sans-serif;}
.story-dialogue-card{min-height:280px;display:flex;flex-direction:column;gap:18px;}
.story-dialogue-speaker{font:700 25px Georgia,serif;color:#305d44;}
.story-dialogue-text{flex:1;font:23px/1.45 Georgia,serif;}
.story-dialogue-progress{font-size:17px;color:#745b41;text-align:right;}
.story-dialogue-controls{display:flex;gap:12px;}
.story-dialogue-controls .story-action{flex:1;}
.story-dialogue-controls button:disabled{opacity:.35;cursor:not-allowed;}
.story-choice-note{background:#f7e1be;border:1px solid #a99069;padding:14px;font-size:17px;}
.story-supplement-list{display:flex;gap:7px;overflow-x:auto;padding:7px 0 15px;
  scroll-snap-type:x proximity;}
.story-supplement-button{flex:0 0 185px;min-height:75px;padding:10px;
  border:2px solid #b29a6d;border-radius:9px;background:#edddbf;color:#3b553a;
  text-align:left;scroll-snap-align:start;font-size:17px;}
.story-supplement-button.is-active{background:#2c6348;color:#fff0d7;}
.story-supplement-detail{min-height:300px;}
.story-supplement-detail p{font:23px/1.6 Georgia,serif;}

/* ST-CHG-2026-1094: real own social/guild projections, no fabricated friends. */
.social-screen{
  position:absolute;z-index:119;left:20px;right:20px;top:128px;bottom:109px;
  padding:20px;overflow-y:auto;overscroll-behavior:contain;
  background:#f6e9d2;border:3px solid #a88e60;border-radius:18px;
  color:#2b4939;font:20px/1.35 "Segoe UI",sans-serif;
}
.social-screen h1{font:700 38px Georgia,serif;text-align:center;margin:8px 0 20px;}
.social-screen h2{font:700 27px Georgia,serif;margin:23px 0 15px;}
.social-screen h3{font:700 25px Georgia,serif;margin:4px 0 13px;}
.social-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
.social-tab{
  min-width:0;min-height:55px;padding:8px 3px;
  border:1px solid #ac9065;border-radius:8px;background:#e9d9b6;
  color:#30533f;font:600 17px "Segoe UI",sans-serif;
}
.social-tab.is-active{background:#2e6349;color:#fff4db;}
.social-scope{font-size:17px;padding:13px 14px;margin:18px 0;
  border-left:5px solid #996936;background:#f2dfbb;color:#73513b;
}
.social-status{font-size:17px;min-height:42px;color:#47604d;}
.social-content{display:flex;flex-direction:column;gap:9px;}
.social-button{display:block;min-height:54px;padding:12px 16px;
  border-radius:10px;border:2px solid #a38c62;background:#2b6449;
  color:#fff3d9;font:600 19px "Segoe UI",sans-serif;margin:9px 0;
}
.social-button:disabled{opacity:.52;cursor:wait;}
.social-empty{background:#ebdbba;padding:15px;border-radius:10px;}
.social-relationship,.social-guild-card,.social-form{background:#fff5df;
  border:2px solid #b29a71;border-radius:13px;padding:15px 17px;margin:8px 0;}
.social-peer-id{font:19px/1.4 monospace;overflow-wrap:anywhere;}
.social-meta{font-size:18px;color:#655035;}
.social-form{display:flex;flex-direction:column;gap:12px;}
.social-form h2{margin:8px 0;}
.social-input,.social-select{width:100%;min-height:54px;border:2px solid #b49b74;
  padding:10px 13px;border-radius:9px;background:#fff9ed;color:#214b38;
  font:19px "Segoe UI",sans-serif;}

/* ST-CHG-2026-1095: authoritative cosmetic ownership and equip screens. */
.inventory-screen{
  position:absolute;z-index:119;left:20px;right:20px;top:128px;bottom:109px;
  padding:20px;overflow-y:auto;overscroll-behavior:contain;
  background:#f6ead5;color:#264635;border:3px solid #a78b5d;
  border-radius:18px;font:21px/1.36 "Segoe UI",sans-serif;
}
.inventory-screen h1{font:700 38px Georgia,serif;text-align:center;margin:8px 0 20px;}
.inventory-screen h2{font:700 26px Georgia,serif;margin:20px 0 10px;}
.inventory-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.inventory-tab{min-height:55px;border:2px solid #ac9065;border-radius:8px;
  background:#e9d9b6;color:#30533f;font:600 19px "Segoe UI",sans-serif;}
.inventory-tab.is-active{background:#2e6349;color:#fff3d5;}
.inventory-authority{font-size:17px;padding:13px;border-left:5px solid #996939;
  background:#f1debb;color:#6c5338;}
.inventory-status{font-size:17px;min-height:37px;color:#44634c;}
.inventory-content{display:flex;flex-direction:column;gap:12px;}
.inventory-item{padding:17px;background:#fff6df;border:2px solid #b9a377;
  border-radius:13px;display:flex;flex-direction:column;gap:6px;}
.inventory-item h2{margin:4px 0;font-size:23px;}
.inventory-meta{font-size:18px;color:#655139;margin:3px 0;}
.inventory-id{font:18px/1.3 monospace;overflow-wrap:anywhere;margin:4px 0;}
.inventory-action{min-height:55px;padding:12px 15px;margin:9px 0;
  background:#2c6249;color:#fff3d9;border:2px solid #ac905e;
  border-radius:11px;font:600 20px "Segoe UI",sans-serif;}
.inventory-action:disabled{opacity:.46;cursor:not-allowed;}
.inventory-empty{font-size:20px;padding:16px;background:#eedfbe;border-radius:12px;}
.inventory-disclaimer{font-size:17px;padding:15px;color:#71533b;}

/* ST-CHG-2026-1096: server-backed statistics and achievement view. */
.statistics-screen{
 position:absolute;z-index:118;top:128px;bottom:109px;left:20px;right:20px;
 overflow-y:auto;padding:22px;background:#f7ecd6;border:3px solid #ab9266;
 border-radius:18px;font:21px/1.35 "Segoe UI",sans-serif;color:#294536;
}
.statistics-screen h1{font:700 38px Georgia,serif;margin:7px 0 25px;text-align:center;}
.statistics-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.statistics-action{
 display:block;border:2px solid #a88a5f;background:#2c6249;color:#fff2d7;
 min-height:53px;border-radius:10px;padding:12px 16px;
 font:600 19px "Segoe UI",sans-serif;margin:7px 0;
}
.statistics-notice{font-size:17px;background:#ecdfbf;padding:15px;border-left:5px solid #97773d;}
.statistics-status{font-size:17px;color:#5e5136;min-height:44px;overflow-wrap:anywhere;}
.statistics-content{display:flex;flex-direction:column;gap:11px;margin:15px 0 25px;}
.statistics-row,.statistics-achievement{background:#fff5dc;border:2px solid #b49d74;
 border-radius:12px;padding:15px;display:flex;gap:12px;justify-content:space-between;}
.statistics-row strong{font-size:23px;color:#285840;}
.statistics-achievement{display:block;}
.statistics-achievement h2{font:700 25px Georgia,serif;margin:0 0 11px;overflow-wrap:anywhere;}
.statistics-achievement p{margin:7px 0;}
.statistics-achievement-state{font-size:17px;color:#785a38;}
.statistics-empty{padding:16px;background:#e7dabd;border-radius:12px;}

/* ST-CHG-2026-1099: one header dropdown, contextual confirmation/report/help pages.
 * All sizes use the existing 720x1280 portrait-shell scaling.
 */
.main-menu-backdrop {
  position:absolute;z-index:205;inset:0;width:100%;height:100%;
  background:rgba(16,38,30,.62);border:0;padding:0;
  cursor:pointer;
}
.main-menu-popover {
  z-index:210;top:112px;right:16px;width:470px;
  max-height:1020px;overflow-y:auto;overscroll-behavior:contain;
  background:#f9efd8;padding:12px 16px;border-radius:16px;
  border:3px solid #af9166;box-shadow:0 14px 44px #091d1699;
}
.main-menu-heading {
  display:flex;align-items:center;justify-content:space-between;
  margin:0 4px 10px;padding:5px 0 10px;
  color:#2c583f;font:700 28px Georgia,serif;
  border-bottom:2px solid #b5a077;
}
.main-menu-popover .main-menu-close {
  display:block;width:55px;height:51px;flex:0 0 55px;padding:0;
  border:2px solid #b79962;background:#fff6e6;
  border-radius:10px;font:700 32px/1 "Segoe UI",sans-serif;
  text-align:center;color:#2a5540;
}
.main-menu-popover .main-menu-item {
  display:block;width:100%;text-align:left;
  min-height:68px;padding:16px 17px;
  border:0;border-bottom:1px solid #c6af80;
  background:transparent;color:#2b4c39;
  font:600 23px/1.25 "Segoe UI",sans-serif;
}
.main-menu-item:focus-visible,.main-menu-item:hover {
  background:#e5d6b6;border-radius:7px;outline:2px solid #d2a762;
}
.header-currencies .currency {
  color:#fff2d7;cursor:pointer;font:600 20px/1.2 "Segoe UI",sans-serif;
  white-space:nowrap;min-height:56px;
}
.header-currencies .currency:focus-visible {outline:2px solid #e3c27d;}

.menu-screen-panel {
  position:absolute;z-index:125;top:144px;left:29px;right:29px;bottom:110px;
  overflow-y:auto;overscroll-behavior:contain;
  padding:27px 28px 38px;
  background:linear-gradient(#fbefd9,#e9dbbf);
  border:3px solid #a68d61;border-radius:19px;
  color:#2c4d3b;font:23px/1.42 "Segoe UI",sans-serif;
}
.menu-screen-panel h1 {
  font:700 39px/1.2 Georgia,serif;margin:10px 0 25px;text-align:center;
}
.menu-screen-panel h2 {
  font:700 29px/1.25 Georgia,serif;margin:8px 0 17px;
}
.menu-screen-panel p {margin:14px 0;overflow-wrap:anywhere;}
.menu-screen-notice {
  background:#f2e0bd;border-left:5px solid #9d7746;
  padding:16px;color:#6c5237;font-size:18px;line-height:1.45;
}
.menu-screen-panel .menu-screen-action {
  display:block;width:100%;min-height:68px;margin:19px 0 0;
  padding:15px 21px;border:2px solid #a98c5c;border-radius:12px;
  background:#295d44;color:#fff4df;
  font:600 24px/1.25 "Segoe UI",sans-serif;
}
.menu-screen-panel .menu-screen-action:disabled {
  opacity:.54;cursor:wait;
}
.menu-guide-tabs {display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0;}
.menu-guide-tab {
  min-height:64px;padding:12px 5px;
  border:2px solid #b59b70;background:#e8d8b5;border-radius:10px;
  color:#38543f;font:600 20px "Segoe UI",sans-serif;
}
.menu-guide-tab.is-active {background:#2c6348;color:#fff2d4;}
.menu-guide-details {
  min-height:240px;margin:18px 0;padding:25px;
  background:#fff9ea;border:2px solid #b5a076;border-radius:14px;
}
.menu-form-field {
  display:flex;flex-direction:column;gap:9px;margin:16px 0 21px;
  font:600 21px "Segoe UI",sans-serif;
}
.menu-form-input {
  display:block;width:100%;min-height:61px;
  padding:14px;border:2px solid #b3996a;border-radius:10px;
  background:#fffaf0;color:#254537;
  font:21px/1.4 "Segoe UI",sans-serif;
}
textarea.menu-form-input {min-height:230px;resize:vertical;}
.menu-report-optin {
  display:flex;align-items:flex-start;gap:14px;margin:22px 0;
  font:19px/1.4 "Segoe UI",sans-serif;
}
.menu-report-optin input {width:27px;height:27px;accent-color:#2d6449;flex:0 0 27px;}
.menu-report-status {
  min-height:55px;padding:10px;color:#3e614c;
  font-size:18px;overflow-wrap:anywhere;
}
.menu-report-recent {
  display:flex;flex-direction:column;gap:9px;margin:13px 0 25px;
}
.menu-report-item {
  padding:12px;background:#fff5dc;border:1px solid #b8a074;border-radius:9px;
  font:17px/1.4 "Segoe UI",sans-serif;overflow-wrap:anywhere;
}

/* ST-CHG-2026-1100: semantic wallet displays, never guessed balances. */
.header-currencies {min-width:0;}
.header-currencies .currency {
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:18px;padding:11px 5px;
}
.profile-wallet-summary {
  background:#eaddbe;border:1px solid #b09a70;border-radius:12px;
  padding:13px 15px;margin:16px 0;
}
.profile-wallet-summary h2 {
  font:700 24px/1.25 Georgia,serif;margin:6px 0 10px;
}
.profile-wallet-line {font:600 20px/1.3 "Segoe UI",sans-serif;margin:9px 0;}
.social-guild-balance {
  color:#246148;background:#ecdfbb;padding:9px 12px;
  border-radius:9px;font:700 20px/1.25 "Segoe UI",sans-serif;
}

/* ST-CHG-2026-1102: real price-quoted cosmetics shop, mobile portrait shell. */
.shop-screen .inventory-item {position:relative;}
.shop-screen .shop-price{
  padding:10px 13px;margin:7px 0;
  border:1px solid #b59c6a;border-radius:9px;
  background:#ead8b1;color:#2a553e;
  font:700 20px/1.3 "Segoe UI",sans-serif;
}
.shop-screen .shop-balance {
  margin:12px 0;padding:13px;
  border:2px solid #bfa16c;border-radius:10px;
  background:#f4e8cd;color:#2b5941;
  font:700 23px/1.3 "Segoe UI",sans-serif;
}
.shop-screen .shop-warning {
  font-size:18px;color:#85523d;
  padding:13px;background:#f6dcc9;border-left:4px solid #9d573a;
  border-radius:7px;
}
.shop-screen .shop-pending-warning {
  padding:17px;background:#ffeac4;border:3px solid #b17f38;
  border-radius:14px;
}
.shop-screen .shop-pending-warning h2 {font:700 28px Georgia,serif;}
.shop-screen .shop-pending-warning p {font-size:19px;line-height:1.5;}
.shop-screen .shop-purchase-success {
  background:#e1f0d8;border:2px solid #48926b;border-radius:14px;
  padding:18px;margin:16px 0;
}
.shop-screen .shop-purchase-success h2 {font:700 30px Georgia,serif;}
.shop-screen .shop-receipt-id {
  font:16px/1.5 monospace;overflow-wrap:anywhere;color:#405f48;
}
.shop-screen .shop-confirm-info {
  background:#f5e5c5;border-left:5px solid #b18a52;
  color:#654932;padding:15px;line-height:1.45;font-size:19px;
}
.shop-screen .shop-cancel-action {
  background:#efe3cb;color:#365947;border:2px solid #af9b73;
}
.shop-screen .shop-discard-action {
  color:#62392c;background:#fff1e0;border:2px solid #a77d55;
  min-height:60px;padding:10px;margin:10px 0;border-radius:10px;
  font:600 18px "Segoe UI",sans-serif;
}
.shop-screen .shop-owned-note{
  padding:12px;border-radius:9px;background:#e1eed5;color:#345e42;
  font-weight:600;
}

/* ST-CHG-2026-1104: confirmed DEV friend relationships and requests. */
.social-screen .social-friend-accept {
  background:#2c694a;color:#fff6df;border-color:#478465;
}
.social-screen .social-friend-decline,
.social-screen .social-friend-cancel,
.social-screen .social-friend-remove {
  background:#f4e4c9;color:#70462f;border-color:#b49568;
}
.social-screen .social-relationship {
  overflow-wrap:anywhere;
}
.social-screen .social-relationship .social-button {
  min-width:0;width:100%;text-align:center;margin:8px 0;
}
#social-friend-request-form {
  margin-top:24px;
}
#social-friend-request-form .social-input {
  display:block;width:100%;max-width:100%;box-sizing:border-box;
  font:17px/1.3 monospace;
}
#social-friend-load-more {
  margin:17px 0;
}

/* ST-CHG-2026-1106 – four real guild screens in the common portrait shell. */
.guild-screen .guild-tabs{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;margin:8px 0 16px;
}
.guild-screen .guild-tab{
  min-width:0;min-height:56px;border:2px solid #ab9169;
  border-radius:9px;background:#e8d9b8;color:#28553c;
  font:600 16px "Segoe UI",sans-serif;padding:8px 4px;
}
.guild-screen .guild-tab.is-active{
  background:#2e654a;color:#fff2d9;
}
.guild-screen .guild-refresh {
  display:block;min-height:48px;width:100%;margin:8px 0 15px;
  border:1px solid #aa976d;border-radius:10px;
  background:#f1e4c7;color:#325640;
  font:600 18px "Segoe UI",sans-serif;
}
.guild-screen .guild-card,
.guild-screen .guild-member-row,
.guild-screen .guild-invitation-card,
.guild-screen .guild-pending-invite,
.guild-screen .guild-event-card{
  background:#fff6e2;border:2px solid #b49d75;
  border-radius:12px;padding:15px 16px;
  display:flex;flex-direction:column;gap:7px;
  overflow-wrap:anywhere;margin:9px 0;
}
.guild-screen .guild-card h3,
.guild-screen .guild-invitation-card h3,
.guild-screen .guild-event-card h3{
  font:700 25px Georgia,serif;margin:4px 0 8px;
}
.guild-screen .guild-card .social-button,
.guild-screen .guild-member-row .social-button,
.guild-screen .guild-invitation-card .social-button,
.guild-screen .guild-form .social-button{
  width:100%;min-height:57px;margin:5px 0;
}
.guild-screen .guild-invite-decline,
.guild-screen .guild-member-remove,
.guild-screen .guild-revoke-invite,
.guild-screen .guild-leave,
.guild-screen .guild-transfer-owner{
  background:#f2dfc4;color:#794f33;border-color:#b2956d;
}
.guild-screen .social-form{
  margin:15px 0 21px;
}
.guild-screen .social-form .social-input{
  display:block;width:100%;box-sizing:border-box;
}
.guild-screen #guild-invite-target{
  font:16px/1.3 monospace;
}
.guild-screen .guild-member-row strong{font-size:21px;}
.guild-screen .guild-permission-toggle{
  display:flex;align-items:center;gap:12px;
  min-height:55px;border-bottom:1px solid #dfcfb1;
  font:600 18px/1.35 "Segoe UI",sans-serif;
}
.guild-screen .guild-permission-toggle input{
  accent-color:#28674b;width:25px;height:25px;flex:0 0 25px;
}
.guild-screen .guild-permission-toggle input:disabled{
  opacity:.6;
}
.guild-screen .guild-form h2{
  line-height:1.25;
}
.guild-screen .guild-role-save,
.guild-screen #guild-profile-save {
  background:#2a6246;color:#fff1db;
}

/* ST-CHG-2026-1108: real server-confirmed Story Puzzle in the portrait shell. */
.story-authority-status {
  margin:12px 2px;padding:11px 13px;background:#e7edd8;color:#28523b;
  border:1px solid #8da88b;border-radius:8px;
  font:600 17px/1.45 "Segoe UI",sans-serif;overflow-wrap:anywhere;
}
.story-server-level-card{
  background:#fff5df;border:2px solid #a99363;border-radius:13px;
  padding:16px;margin:20px 0;
}
.story-server-level-card .story-action{
  width:100%;margin:12px 0;min-height:62px;
}
.story-locked-reason{color:#7f583a;font-size:17px;}
.story-map-node.story-authorized-node{
  outline:3px solid #427958;outline-offset:1px;
}
.story-map-node.story-state-locked{
  border-color:#787a72;outline-color:#929286;
  background:#d6d4c8;color:#54534b;
}
.story-map-node.story-state-completed{
  background:#396b4e;color:#fff6db;outline-color:#d8c080;
}
.story-level-button.story-state-locked{
  background:#d8d5ca;color:#686355;border-color:#b1ad9b;
}
.story-level-button.story-state-unlocked{
  background:#eae4b8;color:#27533d;border-color:#71966b;
}
.story-level-button.story-state-completed{
  background:#37684c;color:#fff5d8;border-color:#cead62;
}
.story-play-screen{
  background:linear-gradient(#f2ead4,#dce6d5);
}
.story-play-screen h1{margin:6px 2px 10px;}
.story-play-notice{
  background:#f1e1c1;color:#6b543b;border-radius:9px;
  padding:11px 13px;margin:5px 0 12px;font:17px/1.35 "Segoe UI",sans-serif;
}
.story-play-content h2{
  text-align:center;margin:8px 0;
}
.story-game-metrics{
  text-align:center;color:#3e614b;
  font:600 18px/1.3 "Segoe UI",sans-serif;
  margin:10px 0;
}
.story-play-board-wrap{
  width:min(100%,600px);aspect-ratio:1;min-height:0;
  margin:0 auto;display:block;background:#eee3c7;
  border:4px solid #927448;border-radius:7px;overflow:hidden;
}
.story-play-grid{
  width:100%;height:100%;font-family:Georgia,serif;
}
.story-play-grid .story-board-cell{
  position:relative;min-width:0;min-height:0;padding:0;
  font-size:29px;line-height:1.2;display:flex;
  justify-content:center;align-items:center;
}
.story-digit-tray{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;margin:17px 2px 9px;
}
.story-digit{
  min-height:64px;border:2px solid #aa8a58;
  border-radius:11px;background:#fff4d8;color:#254c3a;
  font:700 30px/1.25 Georgia,serif;
}
.story-digit:disabled{opacity:.45;cursor:not-allowed;}
.story-digit-erase{
  font:600 18px/1.25 "Segoe UI",sans-serif;
}
.story-game-actions{
  display:grid;grid-template-columns:1fr 1fr;
  gap:10px;margin:12px 0;
}
.story-game-actions .story-action{
  width:100%;font-size:18px;min-height:65px;
  margin:0;
}
.story-game-actions #story-game-abandon{
  color:#674a31;background:#f3e0c5;
}
.story-play-completed{
  border:3px solid #397552;background:#e0ebcf;
  border-radius:15px;padding:15px;margin:18px 0;
}
.story-play-completed .story-action{width:100%;}

/* ST-CHG-2026-1114: shared >=12x12 gesture renderer, 25x25 portrait gameplay. */
.large25-screen {
 position:absolute;z-index:30;top:116px;left:22px;width:676px;height:1140px;
 display:flex;flex-direction:column;gap:10px;padding:12px;
 color:#24392d;font-family:"Segoe UI",system-ui,sans-serif;
 background:linear-gradient(150deg,#f5efdc,#dae5d0);
 border:2px solid #a98757;border-radius:14px;overflow:hidden;
}
.large25-title {display:flex;align-items:center;justify-content:space-between;gap:8px;height:55px;flex-shrink:0;}
.large25-title h1 {margin:0;font-size:30px;}
.large25-back {font-size:24px;padding:8px 13px;background:#e8dcc1;border:1px solid #8c7956;border-radius:9px;}
.large25-status {height:38px;flex-shrink:0;font-weight:700;font-size:19px;text-align:center;}
.large25-viewport-wrap {position:relative;min-height:0;flex:1;border:3px solid #755b38;border-radius:9px;overflow:hidden;background:#ded6b8;}
.large25-viewport {position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;}
.large25-viewport:active {cursor:grabbing;}
.large25-grid {width:1200px;height:1200px;display:grid;position:absolute;top:0;left:0;will-change:transform;}
.large25-cell {
 width:48px;height:48px;padding:0;display:flex;align-items:center;justify-content:center;
 border:1px solid #9c997d;background:#fff9e9;color:#2d4038;
 border-color:#8b7450;font-size:24px;line-height:1;font-weight:600;
 position:relative;user-select:none;touch-action:manipulation;
}
.large25-cell.large25-given {background:#e3dcb9;color:#184535;font-weight:800;}
.large25-cell.large25-fog {background:repeating-linear-gradient(35deg,#536c68,#536c68 5px,#718a83 6px,#718a83 12px);color:#fff9d5;}
.large25-cell.large25-ice {background:#c9e5eb;color:#315b7a;}
.large25-cell.large25-x {box-shadow:inset 0 0 0 2px #cf9955;}
.large25-cell.large25-conflict {background:#faac9b;color:#861b1b;}
.large25-cell.selected {outline:5px solid #e1a244;outline-offset:-5px;z-index:3;}
.large25-cell.large25-cage:not(.large25-fog):not(.large25-ice) {border-style:dashed;}
.large25-zoom-controls {
 position:relative;z-index:7;display:flex;gap:6px;align-items:center;
 justify-content:center;flex-shrink:0;min-height:45px;
 background:#f6f0dded;padding:4px;border:1px solid #b09a6b;border-radius:9px;
}
.large25-zoom-controls button {padding:6px 12px;border-radius:6px;border:1px solid #917d61;background:#f2e7ce;font-size:22px;min-width:50px;}
.large25-zoom-value {min-width:75px;text-align:center;font-size:18px;font-weight:700;}
.large25-tool-row {flex-shrink:0;display:flex;gap:7px;height:62px;}
.large25-tool {flex:1;min-width:0;border-radius:8px;border:1px solid #a28f71;background:#efe3c7;font-size:20px;font-weight:650;}
.large25-tool.active {background:#9abd9e;}
.large25-number-tray {
 flex-shrink:0;height:246px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
 grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;
}
.large25-number-tray button {border-radius:7px;border:1px solid #aa986e;background:#fff4d7;color:#2b463b;font-size:23px;font-weight:750;}
.large25-finish {
 position:absolute;z-index:15;left:90px;right:90px;top:300px;padding:35px;
 border:3px solid #a1814e;border-radius:16px;background:#f1e9d8;color:#244331;
 text-align:center;font-size:24px;box-shadow:0 9px 45px #0007;
}
.large25-finish[hidden] {display:none;}
.large25-finish button {font-size:26px;padding:12px;border-radius:12px;}

/* Size chooser: show 12+/25 zoom-aware profiles without hiding DEV gates. */
.solo-size-options {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
 grid-template-rows:1fr;align-content:center;gap:5px;padding:2px;}
.solo-size-options button {padding:2px 5px;min-height:54px;font-size:18px;}
.solo-variant-options {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;padding:4px;}
.solo-variant-options button {min-width:0;min-height:48px;padding:5px;font-size:20px;}
.solo-variant-options .solo-overlay-option.active {background:#285f46;color:#fff3d6;border-color:#d7b878;}
.solo-size-options .solo-overlay-option {display:none;}
.solo-size-options .solo-overlay-option.active {background:#2e674f;color:#fff2d9;}

/* Killer constraints must remain visible even on touch-only 25x25 screens. */
.large25-cell .large25-cage-sum {
 position:absolute;top:0;left:2px;z-index:2;line-height:1.05;
 padding:1px 2px;border-radius:0 0 4px 0;
 font-size:12px;font-family:"Segoe UI",sans-serif;font-weight:850;
 color:#6b361a;background:#fff6d6e8;
 pointer-events:none;max-width:42px;white-space:nowrap;
}
.large25-cell.large25-cage {border-color:#9a5f31;}

/* ST1119: sparse organic freeform cells. No interactive phantom grid tiles. */
.organic-screen .organic-title h1 {font-size:24px;line-height:1.12;max-width:490px;}
.organic-screen .organic-title .large25-back {flex-shrink:0;}
.organic-viewport-wrap {background:#d9d0ad;}
.organic-grid {background:transparent;justify-content:start;align-content:start;}
.organic-cell {font-weight:700;background:#faf5df;border-color:#826b48;}
.organic-cell.organic-related:not(.selected):not(.large25-given) {background:#e2ead4;}
.organic-cell.selected {outline:4px solid #d49a42;outline-offset:-4px;z-index:3;}
.organic-cell-notes {position:absolute;inset:1px;display:flex;align-items:center;justify-content:center;
 font-size:10px;line-height:1.2;text-align:center;overflow:hidden;white-space:normal;
 font-family:'Segoe UI',system-ui,sans-serif;color:#5c7462;pointer-events:none;}
.solo-variant-options .organic-variant-option.active {background:#285f46;color:#fff3d6;border-color:#d7b878;}
.solo-variant-options .organic-variant-option:disabled {opacity:.55;}
.solo-size-options [data-organic-cell-count] {font-size:16px;white-space:normal;}
.organic-number-tray button {font-family:Georgia,serif;}


/* ST1120: independent organic AllDifferent group boxes */
/* Green solid rectangle: uninterrupted horizontal run.
   Blue dashed rectangle: uninterrupted vertical run.  These are visual
   projections of real Rust region IDs, never new Sudoku constraints. */
.organic-group-legend {
 flex-shrink:0;min-height:31px;padding:4px 9px;
 display:flex;align-items:center;justify-content:center;
 font-family:"Segoe UI",system-ui,sans-serif;font-size:15px;
 font-weight:700;letter-spacing:.1px;color:#264938;
 text-align:center;background:#ecede0;border:1px solid #aa9974;
 border-radius:7px;
}
.organic-group-frame {
 position:absolute;box-sizing:border-box;z-index:4;
 pointer-events:none;user-select:none;touch-action:none;
 border-width:2px;border-style:solid;border-radius:4px;
 background:transparent;opacity:.92;
}
.organic-horizontal-frame {border-color:#256e4d;}
.organic-vertical-frame {
 border-style:dashed;border-color:#2e668f;
 border-radius:7px;z-index:5;
}
.organic-group-frame.is-active {
 border-width:3px;opacity:1;
 filter:drop-shadow(0 0 2px rgba(255,250,214,.9));
}
.organic-horizontal-frame.is-active {border-color:#117c48;}
.organic-vertical-frame.is-active {border-color:#1653a0;}
.organic-single-group {border-style:dotted;}
/* All strokes are overlays without any additional playable hitbox. */
.organic-cell {z-index:1;}
.organic-cell.selected {z-index:6;}
