:root{--bg:#14202b;--panel:#1d2c3a;--ink:#fff;--muted:#9fb2c4;--paper:#fffdf7;--paper-ink:#111;--key:#f4f1ea;--key-ink:#111;--key-fn:#c9d6e3;--press:#fc3;--speak:#1f9d4a;--speak-ink:#fff;--action:#2f6fb0;--clear:#f2b8ad;--undo:#ffe08a;--danger:#c0392b;--gap:8px;--key-h:clamp(70px, 10.5vh, 96px);--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading{place-items:center;height:100%;font-size:64px;font-weight:700;display:grid}.tap{font:inherit;border-radius:var(--radius);touch-action:manipulation;cursor:pointer;border:0;transition:background-color 80ms,transform 80ms}.tap:disabled{opacity:.35;cursor:default}.tap.is-pressed,.tap.is-flash{transform:scale(.97);background:var(--press)!important;color:#111!important}.btn{min-height:70px;color:var(--ink);background:var(--action);padding:8px 16px;font-size:24px;font-weight:700}.btn-primary{background:var(--speak);color:var(--speak-ink)}.btn-secondary{background:var(--panel);border:3px solid var(--muted)}.app{gap:var(--gap);height:100%;padding:max(var(--gap), env(safe-area-inset-top)) max(var(--gap), env(safe-area-inset-right)) max(var(--gap), env(safe-area-inset-bottom)) max(var(--gap), env(safe-area-inset-left));grid-template-columns:1fr clamp(190px,19vw,250px);display:grid}.left{gap:var(--gap);flex-direction:column;min-width:0;min-height:0;display:flex}.actions{gap:var(--gap);flex-direction:column;display:flex}.actions .btn{flex:1 1 0;min-height:70px}.btn-speak{letter-spacing:1px;background:var(--speak);color:var(--speak-ink);font-size:40px;box-shadow:inset 0 0 0 4px #7fe3a2;flex:2.2 1 0!important}.btn-speak.is-speaking{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:inset 0 0 0 10px #7fe3a2}}.btn-fav{background:#7a4fb0}.quick{gap:var(--gap);flex:1.2 1 0;grid-template-columns:1fr 1fr;min-height:80px;display:grid}.quick .btn{border:3px solid #0000;min-height:70px;padding:4px 8px;font-size:30px}.btn-yes{color:#0b3d1c;background:#d6f5df;border-color:#4fbf74!important}.btn-no{color:#5a120b;background:#fbd5d0;border-color:#d9766a!important}.btn-settings{background:var(--panel);color:var(--muted);border:2px solid #34495e;font-size:20px}.hold{position:relative;overflow:hidden}.hold-fill{transform-origin:0;background:#34495e;position:absolute;inset:0;transform:scaleX(0)}.hold-label{flex-direction:column;align-items:center;display:flex;position:relative}.hold-label small{font-size:15px;font-weight:500}.hold-label .backup-due{color:#ffd866;font-weight:700}.text-display{background:var(--paper);min-height:120px;color:var(--paper-ink);border-radius:var(--radius);flex:auto;position:relative;overflow:hidden}.text-scroll{white-space:pre-wrap;word-break:break-word;height:100%;padding:14px 20px;font-weight:500;line-height:1.25;overflow-y:auto}.placeholder{color:#9a9a9a}.caret{vertical-align:-.12em;background:#1f6fd1;width:4px;height:1em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.warning{color:#6b4d00;background:#fff3cd;border-radius:10px;max-width:calc(100% - 20px);padding:6px 12px;font-size:20px;font-weight:600;position:absolute;bottom:10px;right:10px}.suggestions{gap:var(--gap);flex:none;grid-template-columns:repeat(4,1fr);display:grid}.suggestion{height:var(--key-h);color:#0b2a4a;text-overflow:ellipsis;white-space:nowrap;background:#d8ecff;font-size:30px;font-weight:600;overflow:hidden}.suggestion:disabled{opacity:1;background:var(--panel)}.phrases{gap:var(--gap);flex:none;grid-template-columns:repeat(2,1fr);display:grid}.phrase{height:var(--key-h);text-align:left;color:#3d2a00;background:#ffe9b8;padding:4px 16px;font-size:26px;font-weight:600;line-height:1.15;overflow:hidden}.phrase:disabled{opacity:1;background:var(--panel)}.keyboard{gap:var(--gap);flex-direction:column;flex:none;display:flex}.kb-row{justify-content:center;gap:var(--gap);display:flex}.key{flex:0 0 calc((100% - 9 * var(--gap)) / 10);min-width:0;height:var(--key-h);background:var(--key);color:var(--key-ink);padding:0;font-size:36px;font-weight:600}.kb-bottom .key{flex:1 1 0;font-size:24px}.kb-bottom .key:nth-child(2){font-size:36px}.kb-bottom .key-space{flex:2.6 1 0}.key-letter{text-transform:capitalize}.app.kb-tall{--key-h:clamp(70px, 9vh, 90px)}.key-fn{background:var(--key-fn)}.key-clear{background:var(--clear)}.key-undo{background:var(--undo)}.favorites{gap:var(--gap);flex-direction:column;flex:3 1 0;min-height:0;display:flex}.fav-groups{gap:var(--gap);flex:none;display:flex;overflow-x:auto}.fav-group{background:var(--panel);min-height:70px;color:var(--ink);border:3px solid #34495e;flex:1 0 auto;padding:0 18px;font-size:24px;font-weight:700}.fav-group.is-active{background:#7a4fb0;border-color:#c9a8f0}.fav-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:minmax(90px,auto);align-content:start;display:grid;overflow-y:auto}.fav-item{text-align:left;background:var(--key);color:var(--key-ink);padding:12px 16px;font-size:28px;font-weight:600}.fav-empty{color:var(--muted);font-size:24px}.bigtext{z-index:10;gap:var(--gap);padding:max(20px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));background:var(--paper);flex-direction:column;display:flex;position:fixed;inset:0}.bigtext-text{text-align:center;color:#000;word-break:break-word;flex:1;justify-content:center;align-items:center;font-weight:700;line-height:1.15;display:flex;overflow:hidden}.bigtext-text.is-flipped{transform:rotate(180deg)}.bigtext-bar{gap:var(--gap);display:flex}.bigtext-bar .btn{flex:1;min-height:90px;font-size:32px}.bigtext-bar .btn-secondary{color:#111;background:#e6e6e6;border-color:#999}.settings{-webkit-user-select:text;user-select:text;height:100%;padding:max(20px, env(safe-area-inset-top)) 24px 80px;overflow-y:auto}.settings-head{z-index:2;background:var(--bg);justify-content:space-between;align-items:center;padding:8px 0;display:flex;position:sticky;top:0}.settings h1{margin:0;font-size:40px}.settings h2{color:var(--muted);margin:32px 0 12px;font-size:28px}.settings section{border-top:2px solid #34495e}.set-row{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.set-label{flex:240px;font-size:22px}.set-value{text-align:center;min-width:130px;font-size:24px;font-weight:700}.set-choices{flex-wrap:wrap;gap:10px;display:flex}.btn-step{background:#34495e;width:70px;padding:0;font-size:32px}.btn-choice{background:#34495e;font-size:20px}.btn-choice.is-active{background:var(--speak)}.btn-danger{background:#5b2a26;font-size:20px}.btn-danger.is-armed{background:var(--danger)}.set-input,.set-select{min-height:60px;font:inherit;color:#111;background:#fff;border:2px solid #5d7a95;border-radius:10px;flex:320px;padding:8px 14px;font-size:22px}.set-select{flex:0 200px}.set-textarea{resize:vertical;-webkit-user-select:text;user-select:text;width:100%;min-height:220px;line-height:1.35;display:block}.set-help{color:var(--muted);font-size:20px}.set-warn{color:#ffd866;font-weight:600}.set-message{color:#6b4d00;background:#fff3cd;border-radius:12px;padding:14px 18px;font-size:22px;font-weight:600;position:sticky;bottom:12px}.file-btn{align-items:center;display:inline-flex}.file-btn input{display:none}@media (aspect-ratio<=1){.app{flex-direction:column;display:flex}.left{display:contents}.text-display{order:0}.actions{flex:none;order:1;grid-template-columns:repeat(4,1fr);grid-auto-rows:80px;display:grid}.btn-speak{grid-area:1/1/3/3;font-size:34px}.quick{grid-area:3/1/auto/3;min-height:0}.phrases,.suggestions,.favorites{order:2}.keyboard{order:3}}
