.fault-stage{border:1px solid var(--line,#bbc4b1);background:var(--surface-gradient,#edf0e5);border-radius:var(--radius-lg,8px);max-width:620px;box-shadow:var(--shadow-2,inset 0 1px #fff);margin:0 auto;padding:28px}.fault-stage button{-webkit-appearance:none;appearance:none;font:inherit;cursor:pointer;border:0;margin:0}.fault-stage button:disabled,.fault-stage button[aria-disabled=true]{cursor:default}.fault-mono,.fault-stats strong,.fault-levels small,.fault-sensor{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.fault-heading{color:#7d826f;justify-content:space-between;align-items:center;gap:12px;display:flex}.fault-heading .fault-mono{letter-spacing:.11em;font-size:10px}.fault-heading h2{color:#374031;letter-spacing:-.03em;margin-top:5px;font-size:18px;font-weight:530}#fault-rule{color:#6b7361;margin:10px 0 17px;font-size:13px;line-height:1.8}.fault-console{background:var(--surface-sunk,#e9ece1);border:1px solid var(--line,#c2c9b6);border-radius:var(--radius-md,8px);padding:16px;box-shadow:inset 0 1px 2px #00000008}.fault-levels{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%;display:grid}.fault-levels button{border:1px solid var(--line-strong,#bbc4af);color:#616e56;background:0 0;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:1px;height:auto;min-height:44px;font-size:12px;display:flex}.fault-levels small{opacity:.75;font-size:10px}.fault-levels button[data-pressed]{color:#eff0df;background:#3d4c37;border-color:#3d4c37}.fault-board-switch{color:#66725a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 10px;font-size:12px;display:flex}.fault-board-switch>span{align-items:center;gap:5px;display:inline-flex}.fault-daily-done{color:#eff0df;background:#3d4c37;border-radius:3px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:500}.fault-board-switch>div{gap:6px;display:flex}.fault-board-switch button{color:#5d6e4d;background:0 0;border-radius:3px;align-items:center;gap:4px;min-height:34px;padding:0 10px;font-size:12px;display:inline-flex;border:1px solid var(--line-strong,#bbc4af)!important}.fault-board-switch button:hover:not(:disabled),.fault-actions button:hover:not(:disabled){color:#8f552d}.fault-stats{color:#6b7361;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.fault-stats strong{color:#3d4c37;font-size:18px}.fault-bay{--gap:6px;--gutter:40px;grid-template-columns:minmax(0, 1fr) var(--gutter);grid-template-rows:auto var(--gutter);gap:8px;width:min(100%,440px);margin:0 auto;display:grid}.fault-grid-wrap{position:relative}.fault-grid{grid-template-columns:repeat(var(--fault-size), minmax(0, 1fr));gap:var(--gap);border:0;min-width:0;margin:0;padding:0;display:grid}.fault-cell{aspect-ratio:1;color:#d9dcc6;touch-action:manipulation;background:#3f4f3a;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:44px;transition:background .16s,box-shadow .16s,transform .1s;display:flex;position:relative;box-shadow:inset 0 1px #87996e20,0 3px #1d2b1b;border:1px solid #5f6c4b!important}.fault-name{letter-spacing:.02em;opacity:.85;font-size:11px;line-height:1.2}.fault-cell:hover:not([aria-disabled=true]){background:#4a5c43}.fault-cell:active:not([aria-disabled=true]){transform:translateY(2px);box-shadow:0 1px #1d2b1b}.fault-cell:focus-visible{outline-offset:2px;outline:2px solid #dcba78}.fault-cell.is-lit{box-shadow:inset 0 0 0 2px #dcba78,0 3px #1d2b1b}.fault-cell.is-fault{color:#ffe9d6;background:#8f3f22;border-color:#b4572f!important}.fault-cell.is-ok{color:#3d4c37;background:#c9d1b6;border-color:#aab595!important}.fault-cell.is-hint{outline-offset:2px;outline:2px dashed #dcba78}.is-lost .fault-cell.is-truth{box-shadow:inset 0 0 0 3px #d4462a,0 3px #1d2b1b}.is-won .fault-cell.is-truth{background:#b4572f}.fault-cell.is-wrong{opacity:.6}.fault-rows,.fault-cols{gap:var(--gap);border:0;min-width:0;margin:0;padding:0;display:grid}.fault-rows{grid-template-rows:repeat(var(--fault-size), minmax(0, 1fr))}.fault-cols{grid-template-columns:repeat(var(--fault-size), minmax(0, 1fr))}.fault-slot{display:block}.fault-sensor{color:#f0d79e;background:#2e3b2e;border-radius:50%;place-self:center;place-items:center;width:32px;height:32px;font-size:14px;font-weight:600;transition:border-color .16s,background .16s;display:grid;box-shadow:0 1px #fff;border:2px solid #5f6c4b!important}.fault-sensor.is-satisfied{color:#eff0df;background:#6c7a5d}.fault-sensor.is-conflict{color:#ffe9d6;background:#6d2a18;border-color:#d4462a!important}:is(.fault-sensor.is-lit,.fault-sensor:focus-visible){outline:none;border-color:#dcba78!important}.fault-nodes{pointer-events:none;position:absolute;inset:0}.fault-sensor.is-node{pointer-events:auto;width:28px;height:28px;left:calc(var(--node-c) * (100% + var(--gap)) / var(--fault-size) - var(--gap) / 2);top:calc(var(--node-r) * (100% + var(--gap)) / var(--fault-size) - var(--gap) / 2);z-index:1;font-size:12px;position:absolute;transform:translate(-50%,-50%)}.fault-feedback{text-align:center;color:#58694b;justify-content:center;align-items:center;gap:6px;min-height:60px;padding:12px 2px 8px;font-size:13px;line-height:1.7;display:flex}.fault-feedback svg{flex-shrink:0}.fault-actions{grid-template-columns:1.4fr 1fr 1fr;gap:6px;display:grid}.fault-actions button{color:#5d6e4d;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:6px;min-height:44px;font-size:13px;display:flex;border:1px solid var(--line-strong,#bbc4af)!important}.fault-actions .fault-submit{color:#f4f1dd;background:#3d4c37;border-color:#3d4c37!important}.fault-actions .fault-submit:hover:not(:disabled){color:#f0d79e}.fault-actions button:disabled{opacity:.5}.fault-progress{color:#77836a;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:12px 0 3px;font-size:12px;display:flex}.fault-keys{color:#8a937d;margin-top:6px;font-size:11px}.fault-storage{color:#77836a;margin-top:12px;font-size:12px;display:block}@media (max-width:520px){.fault-stage{padding:16px 10px}.fault-console{padding:12px 8px}.fault-bay{--gap:4px;--gutter:34px;gap:6px}.fault-name{font-size:10px}.fault-sensor{width:28px;height:28px;font-size:13px}.fault-sensor.is-node{width:24px;height:24px;font-size:11px}.fault-progress{flex-direction:column}}@media (hover:none){.fault-keys{display:none}}@media (prefers-reduced-motion:reduce){.fault-stage *,.fault-stage :before,.fault-stage :after{transition:none!important}}
