:root{--tgm-bg:#f3efe6;--tgm-panel:#fff;--tgm-ink:#1f2937;--tgm-muted:#5d6777;--tgm-line:#d6deea;--tgm-brand:#0e7a6b;--tgm-brand-strong:#075e53;--tgm-warn-bg:#fff6df;--tgm-warn-ink:#7a4d00;--tgm-error-bg:#fde8eb;--tgm-error-ink:#7d1f2e;--tgm-radius:14px;--tgm-shadow:0 8px 24px #1b253814;color:var(--tgm-ink);text-rendering:optimizelegibility;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Avenir Next,IBM Plex Sans Arabic,Noto Sans Arabic,"Source Sans 3",Segoe UI,sans-serif;line-height:1.4}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 20%, #0e7a6b1f, transparent 35%), radial-gradient(circle at 85% 10%, #3c69be24, transparent 40%), var(--tgm-bg);margin:0}body.tgm-embed-host{background:0 0}#root{min-height:100svh}.app-shell{width:min(1080px,100%);color:var(--tgm-ink);gap:14px;margin:0 auto;padding:26px 16px 44px;display:grid}.app-shell.embed-mode{gap:10px;width:100%;max-width:none;padding:0 0 14px}.app-shell.embed-mode .app-header{box-shadow:none}.app-shell.embed-mode .panel{box-shadow:none;border-radius:min(12px, var(--tgm-radius))}.app-header{border:1px solid var(--tgm-line);border-radius:var(--tgm-radius);box-shadow:var(--tgm-shadow);background:linear-gradient(120deg,#edf9f6,#f4f7ff 60%,#fff3dd);padding:20px}.app-header h1{letter-spacing:.02em;margin:0;font-family:Avenir Next Condensed,Avenir Next,IBM Plex Sans Arabic,sans-serif;font-size:clamp(1.65rem,2.6vw,2.2rem)}.app-header p{color:var(--tgm-muted);max-width:74ch;margin:10px 0 0}.panel{background:color-mix(in srgb, var(--tgm-panel) 92%, #fff);border:1px solid var(--tgm-line);border-radius:var(--tgm-radius);box-shadow:var(--tgm-shadow);gap:14px;padding:16px;display:grid}.panel-header h2{margin:0;font-size:1.2rem}.panel-header p{color:var(--tgm-muted);margin:4px 0 0;font-size:.95rem}.field-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.field-block{gap:6px;display:grid}.field-block span{color:var(--tgm-muted);font-size:.9rem}input,select,button{font:inherit}input[type=text],input[type=number],select,textarea{border:1px solid var(--tgm-line);width:100%;color:var(--tgm-ink);background:#fff;border-radius:10px;padding:9px 10px}textarea{resize:vertical}input[type=color]{border:1px solid var(--tgm-line);background:#fff;border-radius:10px;block-size:44px;inline-size:100%;padding:3px}input[type=range]{width:100%}button{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:9px 14px}button:disabled{cursor:not-allowed;opacity:.55}button.primary{background:var(--tgm-brand);color:#fff}button.primary:hover:not(:disabled){background:var(--tgm-brand-strong)}button.secondary{border-color:var(--tgm-line);color:var(--tgm-ink);background:#fff}.file-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button-row{flex-wrap:wrap;gap:8px;display:flex}.button-row.align-end{align-items:end}.mode-toggle{border:1px solid var(--tgm-line);border-radius:10px;gap:7px;margin:0;padding:10px;display:grid}.mode-toggle legend{color:var(--tgm-muted);padding:0 4px;font-size:.9rem}.mode-toggle label,.checkbox-row{align-items:center;gap:8px;display:inline-flex}.custom-theme-grid{border-top:1px dashed var(--tgm-line);padding-top:12px}.stats-row{gap:4px;font-size:.94rem;display:grid}.preview-list{flex-wrap:wrap;gap:8px;display:flex}.preview-list span{border:1px solid var(--tgm-line);white-space:nowrap;text-overflow:ellipsis;background:#f8fbff;border-radius:999px;max-width:100%;padding:4px 10px;overflow:hidden}.alert{border-radius:10px;padding:10px 12px}.alert ul{margin:0;padding-inline-start:18px}.alert.warn{background:var(--tgm-warn-bg);color:var(--tgm-warn-ink);border:1px solid #f3dca6}.alert.error{background:var(--tgm-error-bg);color:var(--tgm-error-ink);border:1px solid #f2b7c2}.muted-text{color:var(--tgm-muted);font-size:.93rem}.empty-state{border:1px dashed var(--tgm-line);color:var(--tgm-muted);background:#fcfdff;border-radius:10px;padding:14px}.export-surface{border:1px solid var(--tgm-line);background:color-mix(in srgb, var(--tgm-panel) 96%, #fff);border-radius:12px;gap:14px;padding:16px;display:grid}.results-header{border-bottom:1px solid var(--tgm-line);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:10px;display:flex}.results-header h3{margin:0}.results-header span{color:var(--tgm-muted);font-size:.92rem}.groups-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.tool-card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.tool-card{border:1px solid var(--tgm-line);background:#fff;border-radius:12px;gap:8px;padding:12px;display:grid}.tool-card.active{border-color:var(--tgm-brand);box-shadow:0 0 0 2px color-mix(in srgb, var(--tgm-brand) 20%, transparent)}.tool-card h3{margin:0;font-size:1.02rem}.tool-card p{color:var(--tgm-muted);margin:0;font-size:.92rem}.letter-grid{gap:2px;font-family:Menlo,Consolas,monospace;display:grid}.letter-grid-row{gap:2px;display:flex}.letter-grid-row span{border:1px solid var(--tgm-line);background:color-mix(in srgb, var(--tgm-panel) 86%, #fff);border-radius:6px;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;font-size:.86rem;display:inline-flex}.letter-grid-row span.blank{color:#c5cad3}.clue-list{gap:6px;margin:0;padding-inline-start:1.1rem;display:grid}.clue-list li{line-height:1.45}.cipher-output{border:1px solid var(--tgm-line);background:color-mix(in srgb, var(--tgm-panel) 88%, #fff);border-radius:10px;margin:0;padding:10px;line-height:1.65}.group-card{border:1px solid var(--tgm-line);background:#fff;border-radius:10px;padding:10px}.group-card h4{color:var(--tgm-brand-strong);margin:0 0 8px}.group-card ol{gap:4px;margin:0;padding-inline-start:1.25rem;display:grid}.group-card li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.export-surface.large .group-card li,.export-surface.large .group-card h4{font-size:1.05rem}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=700px){.app-shell{padding:16px 12px 28px}.app-shell.embed-mode{padding:0 0 12px}.app-header,.panel{padding:14px}.field-grid,.groups-grid,.tool-card-grid{grid-template-columns:1fr}.button-row>button{flex:100%}.file-actions,.results-header{flex-direction:column;align-items:flex-start}}
