.difficulty-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 25px}.difficulty-tabs a{padding:10px 19px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:#fff;font-weight:600}.difficulty-tabs a.is-active{background:var(--orange);border-color:var(--orange);color:#fff}.soup-live-layout{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:22px;padding:24px 22px 8px}.soup-live-grid{display:grid;grid-template-columns:repeat(var(--soup-size),minmax(0,1fr));width:100%;max-width:560px;margin:auto;background:#fff8f1;border:1px solid #f2e1d0;border-radius:10px;padding:7px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}.soup-grid-row{display:contents}.soup-letter{display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:0;border:0;border-radius:5px;background:transparent;font:600 clamp(13px,1.5vw,20px) Manrope,system-ui,sans-serif;color:#533f30;cursor:crosshair;touch-action:none;user-select:none}.soup-letter.is-found{background:#e3edd6;color:#3d6839}.soup-letter.is-highlighted{background:#c6dda9;box-shadow:inset 0 0 0 1px #8dab69}.soup-letter.is-selecting{background:#f5bf83;color:#643b1e;box-shadow:inset 0 0 0 1px #d78a49}.soup-letter:focus,.soup-letter:focus-visible{outline:none;box-shadow:none}.soup-selection{min-height:44px;line-height:1.6;font-size:14px;color:var(--muted);text-align:center;margin:14px 0 0;overflow-wrap:anywhere}.soup-word-panel h2{font-size:16px;line-height:1.5;letter-spacing:-.3px;margin:0 0 13px}.soup-word-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.soup-word-panel button{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border:1px solid var(--line);border-radius:7px;padding:8px 9px;background:#fff;font:600 14px 'DM Sans',sans-serif;color:var(--ink);cursor:pointer;overflow-wrap:anywhere}.soup-word-check{font-size:17px;color:#aaa}.soup-word-panel button.is-found{color:#5e7b50;background:#f3f7ed;border-color:#e0e9d4}.soup-word-panel button.is-found>span:last-child{text-decoration:line-through}.soup-word-panel button.is-found .soup-word-check{color:#5e7b50}.soup-word-panel button.is-target{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}.soup-bottom{padding:0 22px 22px}.soup-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.soup-actions button{padding:11px 17px;background:#fff;border:1px solid var(--line);border-radius:7px;font:600 14px 'DM Sans',sans-serif;color:#8d5836;cursor:pointer}.soup-actions button:hover{background:#fff5eb}.soup-hint-help{font-size:14px;color:var(--muted);line-height:1.7;text-align:center;margin:15px auto;max-width:540px}.soup-save-info{display:flex;justify-content:space-between;gap:15px;font-size:14px;color:var(--muted);line-height:1.6;margin:15px 0}.soup-bottom .game-message{line-height:1.6;min-height:25px;margin-bottom:18px}.soup-bottom .game-result{background:#fbede0}.soup-bottom .game-result textarea{width:100%;margin-top:15px;min-height:120px}.soup-admin-preview{display:grid;grid-template-columns:repeat(var(--soup-size),minmax(0,1fr));max-width:500px;border:1px solid var(--line);margin:20px 0}.soup-admin-preview span{aspect-ratio:1;display:grid;place-items:center;font:600 16px monospace;background:#fff9f1}.admin-divider{border:0;border-top:1px solid var(--line);margin:28px 0}.soup-controls-guide{margin:25px 0;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.soup-controls-guide h3{font-size:18px;margin:0 0 12px}.soup-controls-guide p{font-size:14px;line-height:1.8;color:var(--muted);margin:10px 0}
@media(max-width:1100px){.soup-live-layout{grid-template-columns:1fr}.soup-word-panel ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.soup-letter{font-size:clamp(14px,2.8vw,22px)}}
@media(max-width:600px){.soup-live-layout{padding:17px 12px 5px;gap:12px}.soup-live-grid{padding:4px;border-radius:8px}.soup-letter{font-size:clamp(12px,3.8vw,19px);border-radius:3px}.soup-word-panel ul{grid-template-columns:repeat(2,minmax(0,1fr))}.soup-word-panel button{padding:8px;font-size:14px}.soup-bottom{padding:0 13px 18px}.soup-actions{gap:6px}.soup-actions button{padding:11px 12px}.soup-save-info{flex-wrap:wrap;font-size:13px}.difficulty-tabs a{flex:1;text-align:center;padding:10px 13px}.soup-controls-guide{padding:19px}}


/* Continuous word contours: one rounded outline per word, including diagonals. */
.soup-live-grid{position:relative;isolation:isolate;background:#fff;border:2px solid #cbd1d6;border-radius:14px;padding:10px;overflow:visible}
.soup-contours{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.soup-letter{position:relative;z-index:1;color:#303943;font-weight:600;background:transparent}
.soup-letter.is-found,.soup-letter.is-highlighted,.soup-letter.is-selecting{background:transparent;box-shadow:none;color:#283642}
.soup-letter.is-selecting{color:#593b1b}
.soup-contour{pointer-events:none}
.soup-word-panel button{border-color:transparent;background:#f7f8f8}
.soup-word-panel button.is-found{color:var(--word-color,#5b9a75);border-color:var(--word-color,#5b9a75);background:#fff;box-shadow:inset 3px 0 0 var(--word-color,#5b9a75)}
.soup-word-panel button.is-found .soup-word-check{color:var(--word-color,#5b9a75)}
.soup-word-panel button.is-target{border-color:var(--word-color,#d3853b);box-shadow:0 0 0 1px var(--word-color,#d3853b)}
.soup-word-panel button.is-found>span:last-child{text-decoration-color:var(--word-color,#5b9a75);text-decoration-thickness:1px}
@media(max-width:600px){.soup-live-grid{padding:7px;border-radius:11px}.soup-letter{font-size:clamp(14px,3.8vw,19px)}}



