@import"https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;700;800;900&display=swap";:root{--bg: #ffffff;--text: #1a1a1b;--muted: #787c7e;--line: #d3d6da;--line-dark: #353636;--empty: #ffffff;--absent: #b8b8b8;--present: #fcba3f;--present-border: #ca7f0e;--correct: #3dd62f;--correct-border: #1a9c0e;--calculate: #87c9ff;--reset: #ff7a7a;--pos-1: #4561ff;--pos-2: #ff9c40;--pos-3: #ff5656;--pos-4: #6eff51;--pos-5: #d54bff;--key: #d3d6da;--panel: #ffffff;--panel-soft: #b7bbbe;--shadow: rgba(0, 0, 0, .12);--radius-soft: 10px}html,body,button,input,select,textarea{font-family:Noto Sans,Arial,sans-serif}.app-title{font-family:Noto Sans,Arial,sans-serif;place-self:center;font-weight:900;font-size:3.5em;margin-top:1.5em}.letter-chart-grid{min-height:0;height:100%;display:grid;grid-template-columns:42px 1fr;gap:8px}.letter-chart-y-axis{min-height:260px;height:100%;display:grid;grid-template-rows:repeat(5,1fr);align-items:stretch}.letter-chart-y-tick{display:flex;align-items:flex-start;justify-content:flex-end;position:relative}.letter-chart-y-label{font-size:10px;font-weight:700;color:var(--muted);transform:translateY(-50%)}.letter-chart-plot{position:relative;min-height:260px;height:100%;overflow:hidden}.letter-chart-grid-line{position:absolute;left:0;right:0;border-top:1px dashed rgba(0,0,0,.12);pointer-events:none}.letter-chart{position:relative;z-index:1;height:100%;min-height:260px;display:grid;grid-template-columns:repeat(26,minmax(12px,1fr));gap:6px;align-items:stretch}.letter-chart-item{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:6px}.letter-bar-shell{position:relative;min-height:0;height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line)}.letter-bar-stack{width:min(100%,22px);min-width:8px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;background:#eef0f2;border:1px solid rgba(0,0,0,.08)}.letter-bar-segment{width:100%;cursor:pointer}.chart-tooltip{position:fixed;z-index:9999;pointer-events:none;max-width:220px;padding:6px 8px;border-radius:8px;background:#1a1a1bf0;color:#fff;font-size:11px;line-height:1.25;box-shadow:0 8px 24px #0000002e;opacity:0;transform:translateY(2px);transition:opacity .08s ease,transform .08s ease}.chart-tooltip-visible{opacity:1;transform:translateY(0)}*{box-sizing:border-box}html,body,#app{height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{height:100vh;display:grid;grid-template-rows:56px 1fr;overflow:hidden}.solver-layout{height:calc(100vh - 56px);display:grid;grid-template-columns:minmax(260px,1fr) max-content minmax(260px,1fr);justify-content:center;align-items:stretch;gap:16px;padding:64px 10px 16px;overflow:hidden;max-width:min(1800px,calc(100vw - 32px));width:100%;margin:0 auto}.center-game{width:max-content;max-width:100%;height:min(100%,720px);min-height:0;display:grid;grid-template-rows:auto auto auto auto;align-content:center;justify-items:center;gap:10px;padding:16px;justify-self:center}.side-panel{width:100%;min-width:0;height:min(100%,720px);min-height:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);display:grid;grid-template-rows:38px 1fr;overflow:hidden}.left-side,.right-side{justify-self:stretch}.side-header{height:38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:var(--panel-soft)}.side-header h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.side-header span{color:var(--muted);font-size:12px;text-transform:capitalize}.status-line{margin:4px 0;color:var(--muted);font-size:13px}.error,.warning{color:#b00020}.message-stack{width:430px;display:grid;gap:6px}.solver-message{border-radius:var(--radius-soft);padding:9px 11px;font-size:12px;line-height:1.35;border:1px solid var(--line)}.solver-message-info{background:#f6f7f8;color:var(--text)}.solver-message-warning{background:#fff6d9;border-color:#d8bf57;color:#574500}.solver-message-error{background:#ffe5e5;border-color:#d37878;color:#7a0000}.wordle-board{width:350px;display:grid;gap:5px}.board-row{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.board-tile{width:66px;height:66px;border:3px solid var(--line-dark);border-radius:var(--radius-soft);display:grid;place-items:center;font-size:2rem;font-weight:800;line-height:1;text-transform:uppercase;-webkit-user-select:none;user-select:none;color:var(--text)}.board-tile.tile-empty,.input-board-tile.tile-empty{background:var(--empty);color:var(--text);border-color:var(--line-dark)}.board-tile.tile-absent,.input-board-tile.tile-absent,.key.tile-absent{background:var(--absent);color:var(--text);border-color:var(--line-dark)}.board-tile.tile-present,.input-board-tile.tile-present,.key.tile-present{background:var(--present);color:var(--text);border-color:var(--present-border)}.board-tile.tile-correct,.input-board-tile.tile-correct,.key.tile-correct{background:var(--correct);color:var(--text);border-color:var(--correct-border)}.input-board-tile{position:relative}.selected-tile{border:3px dashed rgba(0,0,0,.78);outline:0;outline-offset:0}.input-board-tile:hover{outline:2px solid rgba(0,0,0,.18)}.keyboard{width:430px;display:grid;gap:6px}.keyboard-row{display:flex;justify-content:center;gap:6px}.key{height:46px;min-width:32px;flex:1;border:0;border-radius:var(--radius-soft);background:var(--key);color:var(--text);font-size:12px;font-weight:800;text-transform:uppercase}.key-wide{flex:1.45;font-size:11px}.bottom-actions{width:430px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.bottom-action-key{height:46px;border:0;border-radius:var(--radius-soft);color:var(--text);background:var(--key);font-size:12px;font-weight:800;text-transform:uppercase}.bottom-action-key:hover{filter:brightness(.96)}.reset-key{background:var(--reset)}.calculate-key{background:var(--calculate);color:var(--text)}.side-list{height:100%;min-height:0;overflow:auto;padding:8px;display:grid;gap:6px;align-content:start}.word-pill{border:1px solid var(--line);color:var(--text);border-radius:var(--radius-soft);padding:7px 8px;font-size:12px;font-weight:800;letter-spacing:.08em}.ranked-word-pill{display:grid;grid-template-columns:24px 1fr 28px;align-items:center;gap:8px;text-align:left}.top-ranked-word{box-shadow:inset 0 0 0 2px #2d5c2966}.candidate-rank{color:var(--muted);font-size:11px;font-weight:900}.candidate-word{color:var(--text)}.candidate-depth{justify-self:end;min-width:20px;text-align:center;font-size:11px;font-weight:900;color:#000000b8;background:#ffffff80;border:1px solid rgba(0,0,0,.12);border-radius:999px;padding:1px 5px}.word-pill:hover{filter:brightness(.97)}.right-panel-content{min-height:0;display:grid;grid-template-rows:1fr auto;overflow:hidden}.best-table-wrap{min-height:0;overflow:auto}.best-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.best-table th,.best-table td{border-bottom:1px solid var(--line);padding:7px 6px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.best-table th{background:#fff;position:sticky;top:0;z-index:1;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.best-table th:nth-child(1),.best-table td:nth-child(1){width:34px}.best-table th:nth-child(3),.best-table td:nth-child(3){width:54px}.best-table th:nth-child(4),.best-table td:nth-child(4),.best-table th:nth-child(5),.best-table td:nth-child(5),.best-table th:nth-child(6),.best-table td:nth-child(6),.best-table th:nth-child(7),.best-table td:nth-child(7){width:56px}.best-table tbody tr{cursor:pointer;background:#fff}.best-table tbody tr:nth-child(2n){background:#f6f7f8}.best-table tbody tr:hover{background:#f1f1f1}.best-table tbody tr.recommended-row{background:linear-gradient(90deg,#3dd62f29,#fff)}.best-table tbody tr.recommended-row td{border-bottom-color:#2d5c2959}.empty{color:var(--muted);padding:12px;font-size:13px}.empty-cell{color:var(--muted);text-align:center}.progress-footer{border-top:1px solid var(--line);padding:8px 10px 10px;background:#fafafa}.progress-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin-bottom:6px}.progress-track{width:100%;height:8px;border-radius:999px;background:#e7e7e7;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#e79121,#3dd62f);transition:width .12s linear}.controls-shell{position:fixed;right:18px;bottom:18px;z-index:20}.controls-bubble{width:52px;height:52px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);box-shadow:0 8px 28px var(--shadow);font-size:26px;font-weight:800;display:inline-grid;place-items:center}.controls-popover{position:absolute;right:0;bottom:62px;width:330px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px var(--shadow);padding:14px}.controls-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.icon-button{border:0;background:transparent;font-size:22px;line-height:1;color:var(--muted)}.control-hint-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;font-size:12px;color:var(--muted);margin-bottom:14px}.wordle-help-note{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.35}.wordle-help-note strong{color:var(--text);font-size:12px}.sample-dot{display:inline-block;width:11px;height:11px;margin-right:6px;border-radius:2px;vertical-align:-1px}.absent-dot{background:var(--absent)}.present-dot{background:var(--present)}.correct-dot{background:var(--correct)}.unknown-dot{background:#fff;border:1px solid var(--line-dark)}.mode-description{color:var(--muted);font-size:12px;line-height:1.35;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-soft);padding:9px;margin-bottom:8px}.fixed-top-note{color:var(--muted);font-size:12px;margin-bottom:10px}.popover-buttons{display:grid;gap:8px;margin-top:12px}.secondary-button,.danger-button{border:1px solid var(--line);border-radius:var(--radius-soft);background:#fff;color:var(--text);font-weight:700;padding:8px 10px}.danger-button{color:#b00020}.inspect-panel{border-top:1px solid var(--line);background:#fafafa}.inspect-summary{list-style:none;cursor:pointer;margin:0;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#fff,#f6f7f8);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text);-webkit-user-select:none;user-select:none}.inspect-summary::-webkit-details-marker{display:none}.inspect-panel[open] .inspect-summary{border-bottom:1px solid var(--line)}.inspect-summary-label{display:inline-flex;align-items:center;gap:8px}.inspect-summary-label:before{content:"▸";font-size:12px;transition:transform .12s ease}.inspect-panel[open] .inspect-summary-label:before{transform:rotate(90deg)}.inspect-summary-hint{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted);text-transform:none}.inspect-panel-body{padding:10px;display:grid;gap:8px}.inspect-controls{display:grid;grid-template-columns:1fr auto;gap:8px}.inspect-input{height:34px;border:1px solid var(--line);border-radius:var(--radius-soft);padding:0 10px;text-transform:uppercase;font-weight:700;letter-spacing:.08em}.inspect-button{height:34px;border:1px solid var(--line);border-radius:var(--radius-soft);background:#fff;padding:0 12px;font-weight:700}.inspect-note,.inspect-error,.inspect-stats{font-size:12px;line-height:1.4}.inspect-error{color:#b00020}.inspect-stats{display:grid;gap:2px}.left-panel-content{min-height:0;height:100%;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 8px 0;border-bottom:1px solid var(--line);background:#fff}.panel-tab{height:32px;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:#f6f7f8;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.panel-tab-active{background:#fff;color:var(--text)}.left-panel-body{min-height:0;overflow:hidden;display:flex;flex-direction:column}.left-panel-tab-content{min-height:0;height:100%}.letter-chart-wrap{min-height:0;height:100%;display:grid;grid-template-rows:auto 1fr;gap:8px;padding:8px}.letter-chart-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;font-size:10px;color:var(--muted)}.letter-chart-legend-item{display:flex;align-items:center;gap:4px;white-space:nowrap}.legend-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 10px}.legend-pos-1{background:var(--pos-1)}.legend-pos-2{background:var(--pos-2)}.legend-pos-3{background:var(--pos-3)}.legend-pos-4{background:var(--pos-4)}.legend-pos-5{background:var(--pos-5)}.letter-chart-scroll{min-height:0;overflow:auto;padding-bottom:4px}.letter-bar{width:min(100%,22px);min-width:8px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;background:#eef0f2;border:1px solid rgba(0,0,0,.08)}.segment-pos-1{background:var(--pos-1)}.segment-pos-2{background:var(--pos-2)}.segment-pos-3{background:var(--pos-3)}.segment-pos-4{background:var(--pos-4)}.segment-pos-5{background:var(--pos-5)}.letter-bar-label{text-align:center;font-size:10px;font-weight:800;color:var(--muted)}@media(max-width:1220px){.solver-layout{grid-template-columns:minmax(220px,1fr) max-content minmax(220px,1fr);gap:10px}.wordle-board{width:320px}.board-tile{width:60px;height:60px;font-size:1.75rem}.keyboard,.bottom-actions,.message-stack{width:390px}.key{height:42px;min-width:28px}}@media(max-height:720px){.wordle-board{width:300px}.board-tile{width:56px;height:56px;font-size:1.65rem}.keyboard,.bottom-actions,.message-stack{width:390px}.key,.bottom-action-key{height:38px}}@media(max-width:980px){html,body,#app{overflow:auto;height:auto}.app-shell{min-height:100vh;height:auto;overflow:visible}.solver-layout{height:auto;grid-template-columns:1fr;align-items:start;overflow:visible}.center-game{order:1;width:100%;justify-self:center}.left-side,.right-side{height:260px}.left-side{order:2}.right-side{order:3}}.best-table th:nth-child(2),.best-table td:nth-child(2){width:168px}.best-word-cell{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0}.best-word{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900;letter-spacing:.1em}.recommended-badge{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 7px;border-radius:999px;background:#3dd62f29;border:1px solid rgba(45,92,41,.35);font-size:9px;font-weight:800;letter-spacing:.02em;white-space:nowrap;flex:0 0 auto}
