html{font-size:calc(16px * var(--app-text-zoom,1));-webkit-text-size-adjust:100%}:root{--bg:#f5efe4;--bg-panel:#fff;--ink:#1a1a1a;--ink-soft:#5b5248;--line:#1a1a1a;--accent:#c73e1d;--accent-soft:#f7e6de;--ok:#2d6a4f;--ok-soft:#d8ebd8;--warn:#b8860b;--shadow:0 3px 0 var(--line);--shadow-sm:0 2px 0 var(--line);--radius:.875rem;--radius-sm:.625rem;--focus:0 0 0 4px #ffd166, 0 3px 0 var(--line)}*{box-sizing:border-box}button,select,input{color:inherit}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);background-image:radial-gradient(circle at 20% 10%,#c73e1d0a 0,#0000 40%),radial-gradient(circle at 90% 80%,#2d6a4f0a 0,#0000 45%);min-height:100vh;font-family:Atkinson Hyperlegible,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:1.25rem;line-height:1.35;overflow-x:hidden}.wrap{max-width:980px;margin:0 auto;padding:1rem 1rem 2rem;overflow-x:hidden}.wrap.fullwidth{max-width:none}.wrap.compact{padding:.5rem .5rem 1rem}.wrap.compact .actions{gap:.375rem}.wrap.compact .btn{gap:.375rem;min-height:3rem;padding:.625rem .375rem;font-size:1.25rem}.wrap.compact .btn .ico{font-size:1.375rem}.wrap.compact .sentence{gap:.375rem .5rem;min-height:5rem;padding:.75rem}.wrap.compact .sentence .word-chip{font-size:1.25rem}.wrap.compact .freq-wrap{margin-top:.625rem}.wrap.compact .freq-bar{gap:.375rem}.wrap.compact .freq-bar .chip{min-height:2.75rem;padding:.5rem .25rem;font-size:1rem}.wrap.compact .ai-wrap{margin-top:.625rem;padding:.625rem}.wrap.compact .ai-grid{gap:.375rem}.wrap.compact .ai-grid .chip{min-height:2.75rem;padding:.5rem .25rem;font-size:1rem}.wrap.compact .topics{gap:.375rem}.wrap.compact .topic{min-height:5rem;padding:.625rem .25rem}.wrap.compact .topics-label{margin:1rem .25rem .5rem}.wrap.compact header.top{margin-bottom:.5rem}header.top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.875rem;display:flex}.dot{background:var(--accent);border:2px solid var(--line);border-radius:50%;flex-shrink:0;width:.875rem;height:.875rem;display:block}.voice-header-btn{background:var(--bg-panel);border:3px solid var(--line);border-radius:var(--radius-sm);min-height:3.25rem;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--ink);justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-family:inherit;font-size:1.125rem;font-weight:700;display:inline-flex}.voice-header-btn:hover{background:#fff8ec}.voice-header-btn:active{box-shadow:0 0 0 var(--line);transform:translateY(2px)}.voice-header-btn:focus-visible{box-shadow:var(--focus);outline:none}.voice-header-ico{font-size:1.5rem;line-height:1}.voice-header-text{line-height:1}.sentence{background:var(--bg-panel);border:2px dashed var(--ink-soft);border-radius:var(--radius);-webkit-overflow-scrolling:touch;flex-wrap:wrap;align-content:flex-start;align-items:baseline;gap:.5rem .625rem;min-height:7.5rem;max-height:50vh;padding:1.25rem 1.375rem;display:flex;position:relative;overflow-y:auto}.sentence.empty:before{content:"Dotknij słowa, aby zacząć mówić";color:var(--ink-soft);font-size:1.375rem;font-style:italic}.sentence .word-chip{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.2em;font-size:1.625rem;font-weight:700;text-decoration-thickness:2px;animation:.18s ease-out pop}.sentence-input-wrap{margin-top:.75rem}.sentence-input{width:100%;min-height:8.75rem;color:var(--ink);background:var(--bg-panel);border:2px dashed var(--ink-soft);border-radius:var(--radius);resize:vertical;padding:1.125rem 1.25rem;font-family:inherit;font-size:1.375rem;line-height:1.4}.sentence-input:focus{box-shadow:var(--focus);outline:none}.sentence-input::placeholder{color:var(--ink-soft);font-style:italic}@keyframes pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.freq-wrap{margin-top:1.125rem}.freq-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;margin:0 .25rem .5rem;font-size:.9375rem;font-weight:700;display:flex}.freq-label .bar-line{background:var(--ink-soft);opacity:.25;flex:1;height:2px}.freq-bar{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;display:grid}.freq-bar .chip{background:var(--bg-panel);border:3px solid var(--line);border-radius:var(--radius-sm);text-align:center;cursor:pointer;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;word-break:break-word;justify-content:center;align-items:center;min-height:4rem;padding:.875rem .375rem;font-size:1.25rem;font-weight:700;line-height:1.15;transition:transform 80ms,background .12s;display:flex}.freq-bar .chip:hover{background:#fff8ec}.freq-bar .chip:active{box-shadow:0 0 0 var(--line);transform:translateY(3px)}.freq-bar .chip:focus-visible{box-shadow:var(--focus);outline:none}.ai-wrap{background:var(--accent-soft);border:3px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:1rem;padding:.875rem .875rem 1rem}.ai-label{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;margin:0 0 .625rem .125rem;font-size:.9375rem;font-weight:700;display:flex}.ai-grid{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;display:grid}.ai-grid .chip{border:3px solid var(--line);border-radius:var(--radius-sm);text-align:center;cursor:pointer;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;word-break:break-word;background:#fff;justify-content:center;align-items:center;min-height:3.625rem;padding:.75rem .375rem;font-size:1.1875rem;font-weight:700;line-height:1.15;transition:transform 80ms,background .12s;display:flex}.ai-grid .chip:hover{background:#fff8ec}.ai-grid .chip:active{box-shadow:0 0 0 var(--line);transform:translateY(3px)}.ai-grid .chip.loading{color:#0000;cursor:default;pointer-events:none;background:repeating-linear-gradient(45deg,#fff,#fff 8px,#f7e6de 8px 16px)}.actions{flex-wrap:wrap;gap:.625rem;margin-top:1rem;display:flex}.btn{border:3px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);background:#fff;flex:auto;justify-content:center;align-items:center;gap:.625rem;min-height:4rem;padding:1rem .625rem;font-family:inherit;font-size:1.5rem;font-weight:700;transition:transform 80ms,background .12s;display:flex}.btn:active{box-shadow:0 0 0 var(--line);transform:translateY(3px)}.btn:focus-visible{box-shadow:var(--focus);outline:none}.btn.primary{background:var(--ok-soft);flex:100%}.btn.primary:hover{background:#c6e3c6}.btn.warn{background:#ffecd9}.btn.danger{background:#ffd8d0}.btn .ico{font-size:1.75rem}.topics-label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;margin:1.625rem .25rem .625rem;font-size:.9375rem;font-weight:700;display:flex}.topics-label .bar-line{background:var(--ink-soft);opacity:.25;flex:1;height:2px}.topics{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.625rem;display:grid}.topic{background:var(--bg-panel);border:3px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.375rem;min-height:7.375rem;padding:1rem .5rem;transition:transform 80ms,background .12s;display:flex}.topic:hover{background:#fff8ec}.topic:active{box-shadow:0 0 0 var(--line);transform:translateY(3px)}.topic:focus-visible{box-shadow:var(--focus);outline:none}.topic .emoji{font-size:2.125rem;line-height:1}.topic .name{word-break:break-word;font-size:1.125rem;font-weight:700}.sheet-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#1a1a1a8c;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.sheet-overlay.open{display:flex}.sheet{background:var(--bg);border-top:4px solid var(--line);border-left:4px solid var(--line);border-right:4px solid var(--line);border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;flex-direction:column;width:100%;max-width:980px;max-height:88vh;padding:1.125rem 1rem 1.5rem;animation:.25s ease-out slideUp;display:flex;overflow:hidden}.sheet.fullwidth{max-width:95vw}@keyframes slideUp{0%{opacity:.6;transform:translateY(2.5rem)}to{opacity:1;transform:translateY(0)}}.sheet-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.625rem;margin-bottom:.875rem;display:flex}.sheet-header h2{word-break:break-word;align-items:center;gap:.625rem;min-width:0;margin:0;font-size:1.625rem;display:flex}.sheet-header h2 .emoji{font-size:1.875rem}.sheet-close{border:3px solid var(--line);cursor:pointer;width:3.5rem;height:3.5rem;box-shadow:var(--shadow-sm);background:#fff;border-radius:.75rem;flex-shrink:0;font-family:inherit;font-size:1.5rem;font-weight:700}.sheet-close:active{box-shadow:0 0 0 var(--line);transform:translateY(2px)}.word-grid{-webkit-overflow-scrolling:touch;flex:1;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));align-content:start;gap:.625rem;min-height:0;display:grid;overflow-y:auto}.word-grid .chip{border:3px solid var(--line);border-radius:var(--radius-sm);text-align:center;cursor:pointer;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;word-break:break-word;background:#fff;justify-content:center;align-items:center;min-height:4.875rem;padding:1.125rem .375rem;font-size:1.3125rem;font-weight:700;line-height:1.15;transition:transform 80ms,background .12s;display:flex}.word-grid .chip:hover{background:#fff8ec}.word-grid .chip:active{box-shadow:0 0 0 var(--line);transform:translateY(3px)}.word-grid .chip.add{background:var(--accent-soft);color:var(--accent);border-style:dashed}.add-modal{z-index:60;-webkit-overflow-scrolling:touch;background:#1a1a1a8c;justify-content:center;align-items:flex-start;padding:1rem;display:none;position:fixed;inset:0;overflow-y:auto}.add-modal.open{display:flex}.add-box{background:var(--bg);border:4px solid var(--line);border-radius:var(--radius);-webkit-overflow-scrolling:touch;width:100%;max-width:460px;max-height:calc(100vh - 2rem);box-shadow:var(--shadow);margin:auto 0;padding:1.375rem;overflow-y:auto}.add-modal.fullscreen{background:var(--bg);align-items:stretch;padding:0}.add-modal.fullscreen .add-box{max-width:none;max-height:100vh;box-shadow:none;border:none;border-radius:0;margin:0;padding:.5rem}.add-modal.fullscreen .add-box h3{font-size:1.25rem}.add-modal.fullscreen .voice-label{margin-bottom:.25rem;font-size:.8125rem}.add-modal.fullscreen .voice-label-spaced{margin-top:.625rem}.add-modal.fullscreen .voice-hint{margin-bottom:.375rem;font-size:.8125rem;line-height:1.3}.add-modal.fullscreen .check-row{margin-bottom:.5rem;font-size:1rem}.add-modal.fullscreen .text-scale-row{gap:.5rem;margin-bottom:.125rem}.add-modal.fullscreen .text-scale-btn{min-width:2.75rem;min-height:2.5rem;padding:0 .5rem;font-size:1.375rem}.add-modal.fullscreen .text-scale-value{min-width:3.5em;font-size:1.125rem}.add-modal.fullscreen .voice-select{padding:.5rem;font-size:1rem}.add-modal.fullscreen .voice-actions{margin-top:.5rem}.add-modal.fullscreen .voice-actions .btn{min-height:2.75rem;padding:.625rem .375rem;font-size:1.125rem}.add-modal.fullscreen .pwa-install-btn{min-height:2.75rem;font-size:1rem}.add-modal.fullscreen .modal-header{margin-bottom:.375rem}.add-modal.fullscreen .sheet-close{width:2.75rem;height:2.75rem;font-size:1.25rem}.modal-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.modal-header .sheet-close{flex-shrink:0}.add-box h3{margin:0;font-size:1.5rem}.add-box input{border:3px solid var(--line);background:#fff;border-radius:.625rem;width:100%;padding:1rem;font-family:inherit;font-size:1.375rem}.add-box input:focus{box-shadow:var(--focus);outline:none}.add-box .row{flex-wrap:wrap;gap:.625rem;margin-top:.875rem;display:flex}.add-box .row .btn{flex:auto}.voice-hint{color:var(--ink-soft);margin:0 0 .75rem;font-size:.9375rem;line-height:1.4}.voice-hint-tight{margin-bottom:.625rem}.voice-label-spaced{margin-top:1.125rem}.check-row{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.125rem;font-weight:700;display:flex}.check-box{width:1.25em;height:1.25em;accent-color:var(--ok);cursor:pointer;flex-shrink:0}.text-scale-row{justify-content:center;align-items:center;gap:.875rem;margin-bottom:.25rem;display:flex}.text-scale-btn{border:3px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-panel);min-width:3.5rem;min-height:3.25rem;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--ink);justify-content:center;align-items:center;padding:0 .75rem;font-family:inherit;font-size:1.75rem;font-weight:700;line-height:1;display:inline-flex}.text-scale-btn:hover:not(:disabled){background:#fff8ec}.text-scale-btn:active:not(:disabled){box-shadow:0 0 0 var(--line);transform:translateY(2px)}.text-scale-btn:focus-visible{box-shadow:var(--focus);outline:none}.text-scale-btn:disabled{opacity:.4;cursor:not-allowed}.text-scale-value{text-align:center;min-width:4.2em;font-size:1.375rem;font-weight:700}.voice-label{margin-bottom:.375rem;font-size:.9375rem;font-weight:700;display:block}.voice-select{border:3px solid var(--line);cursor:pointer;background:#fff;border-radius:.625rem;width:100%;padding:.875rem .75rem;font-family:inherit;font-size:1.125rem}.voice-select:focus{box-shadow:var(--focus);outline:none}.voice-actions{margin-top:.875rem}.toast{background:var(--line);color:#fff;z-index:80;text-align:center;opacity:0;visibility:hidden;pointer-events:none;border-radius:.75rem;max-width:90vw;padding:.875rem 1.375rem;font-size:1.0625rem;font-weight:700;transition:opacity .3s,visibility .3s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast.show{opacity:1;visibility:visible;pointer-events:auto}@media (width<=720px){body{font-size:1.125rem}.wrap{padding:.625rem .625rem 1.5rem}header.top h1{font-size:1.125rem}.voice-header-btn{min-height:3rem;padding:.5rem .75rem;font-size:1rem}.voice-header-ico{font-size:1.375rem}.sentence{min-height:5.625rem;padding:.875rem}.sentence .word-chip{font-size:1.375rem}.sentence.empty:before{font-size:1.0625rem}.sentence-input{min-height:7.5rem;padding:.875rem 1rem;font-size:1.125rem}.freq-bar{gap:.375rem}.freq-bar .chip{min-height:3.375rem;padding:.625rem .25rem;font-size:1rem}.ai-grid{gap:.375rem}.ai-grid .chip{min-height:3.375rem;font-size:1.0625rem}.btn{min-height:3.5rem;padding:.875rem .625rem;font-size:1.25rem}.topics{gap:.5rem}.topic{min-height:6.25rem;padding:.75rem .375rem}.topic .emoji{font-size:1.75rem}.topic .name{font-size:.9375rem}.word-grid{gap:.5rem}.word-grid .chip{min-height:4.375rem;font-size:1.1875rem}.text-scale-btn{min-width:3.25rem;min-height:3rem;font-size:1.625rem}.text-scale-value{font-size:1.125rem}.check-row{font-size:1rem}}@media (width>=900px){.freq-bar .chip{min-height:3.75rem;padding:.75rem .25rem;font-size:1.125rem}}.pwa-install-btn{justify-content:center;align-items:center;gap:.5rem;width:100%;min-height:3.25rem;font-size:1.125rem;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
