.te-connection,.te-puzzle,.te-puzzle-dialog{--tep-navy:#102f43;--tep-ivory:#fffaf0;--tep-gold:#efbd4c;--tep-ink:#17364a;--tep-muted:#4c6371;--tep-line:#c9d3d8;--tep-green:#147246;--tep-warn:#86570b;box-sizing:border-box;color:var(--tep-ink);font-family:inherit}
.te-connection[hidden]{display:none!important}
.te-connection{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));background:var(--tep-ivory);border-bottom:1px solid var(--tep-line);font-size:14px;line-height:1.45;z-index:1}
.te-connection-copy{display:flex;align-items:flex-start;gap:8px;min-width:0}
.te-connection-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--tep-green);margin-top:6px}
.te-connection[data-state=offline] .te-connection-dot,.te-connection[data-state=server-unreachable] .te-connection-dot{background:var(--tep-warn)}
.te-connection[data-state=connecting] .te-connection-dot{background:#2f69a1}
.te-connection-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.te-connection button,.te-puzzle button{appearance:none;min-width:44px;min-height:44px;padding:10px 14px;border:1px solid var(--tep-navy);border-radius:12px;background:var(--tep-ivory);color:var(--tep-ink);font:inherit;font-weight:650;line-height:1.3;cursor:pointer;touch-action:manipulation;transition:background-color .12s,box-shadow .12s;white-space:normal;overflow-wrap:anywhere}
.te-connection button:focus-visible,.te-puzzle button:focus-visible{outline:3px solid #2366b1;outline-offset:3px}
.te-connection button:active,.te-puzzle button:active{background:#f5dfa3}
.te-connection button[hidden]{display:none!important}
.te-connection button:disabled,.te-puzzle button:disabled{cursor:default;opacity:.65}
.te-connection [data-te-play],.te-puzzle [data-puzzle-next]{background:var(--tep-navy);color:#fff}
.te-connection [data-te-play]:active,.te-puzzle [data-puzzle-next]:active{background:#25536b}
.te-puzzle{font-size:16px;line-height:1.5;max-width:640px;margin:0 auto;padding:4px;overflow-wrap:anywhere}
.te-puzzle *{box-sizing:border-box}
.te-puzzle p{margin:8px 0;color:var(--tep-ink)}
.te-puzzle .te-puzzle-heading{position:static;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 12px;padding:0;background:transparent;color:var(--tep-ink);border:0;border-radius:0}
.te-puzzle h2{font-size:28px;line-height:1.2;margin:4px 0 0;color:var(--tep-navy)}
.te-puzzle .te-puzzle-eyebrow{font-size:12px;font-weight:750;letter-spacing:.08em;color:var(--tep-muted);margin:0}
.te-puzzle .te-puzzle-progress{font-weight:750;font-size:17px}
.te-puzzle .te-puzzle-pending{color:var(--tep-muted);font-size:14px}
.te-puzzle .te-puzzle-mode{background:#f9e8b9;padding:10px 12px;border-radius:10px;font-weight:700;color:#523b0e;margin:12px 0}
.te-puzzle-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:330px;margin:16px auto 12px;padding:10px;background:var(--tep-navy);border-radius:20px}
.te-puzzle-board button{aspect-ratio:1;min-height:64px;padding:4px;background:var(--tep-ivory);border:2px solid #fff;font-size:32px;font-weight:750;line-height:1;color:var(--tep-navy);box-shadow:0 2px 0 #c8aa68}
.te-puzzle-board button[aria-disabled=false]{background:var(--tep-gold);border-color:#ffe9b1}
.te-puzzle-board .te-puzzle-empty{visibility:hidden;pointer-events:none}
.te-puzzle .te-puzzle-moves{text-align:center;color:var(--tep-muted);font-size:14px;font-variant-numeric:tabular-nums}
.te-puzzle .te-puzzle-message{min-height:48px;padding:10px 12px;border-left:3px solid var(--tep-green);background:#e9f3ed;border-radius:6px;color:var(--tep-ink)}
.te-puzzle-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.te-puzzle .te-puzzle-storage{font-size:13px;color:var(--tep-muted);line-height:1.5;margin-bottom:8px}
.te-puzzle-dialog{border:1px solid #d1ba7d;border-radius:22px;background:var(--tep-ivory);width:min(680px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:20px;overflow-y:auto}
.te-puzzle-dialog::backdrop{background:rgba(4,24,39,.75)}
@media(max-width:600px){.te-connection{align-items:flex-start;flex-direction:column;gap:6px}.te-connection[data-state=online]{flex-direction:row;align-items:center}.te-connection-actions{width:100%}.te-connection[data-state=online] .te-connection-actions{width:auto}.te-connection-actions button{flex:1}.te-puzzle .te-puzzle-heading{gap:8px}.te-puzzle-heading>div{min-width:0}.te-puzzle-heading button{font-size:14px}.te-puzzle-dialog{padding:16px}.te-puzzle-board{max-width:300px}}
@media(prefers-reduced-motion:reduce){.te-puzzle button,.te-connection button{transition:none}}
