:root{--color-bg:#fff;--color-surface:#f8f9fa;--color-surface-hover:#e9ecef;--color-border:#dee2e6;--color-text:#212529;--color-text-secondary:#6c757d;--color-primary:#4361ee;--color-primary-hover:#3a56d4;--color-danger:#e63946;--color-danger-hover:#c1121f;--color-success:#2d6a4f;--color-recording:#e63946;--color-error-bg:#fff5f5;--color-error-border:#fecaca;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--radius:8px;--radius-lg:16px;--shadow:0 1px 3px #00000014;--shadow-lg:0 4px 12px #0000001a;--max-width:640px;--transition:.15s ease}@media (prefers-color-scheme:dark){:root{--color-bg:#1a1a2e;--color-surface:#16213e;--color-surface-hover:#1f3460;--color-border:#2a2a4a;--color-text:#e8e8e8;--color-text-secondary:#9ca3af;--color-primary:#5e7ce2;--color-primary-hover:#4a6ad9;--color-danger:#f87171;--color-danger-hover:#ef4444;--color-success:#4ade80;--color-recording:#f87171;--color-error-bg:#2d1b1b;--color-error-border:#5c2a2a;--shadow:0 1px 3px #0000004d;--shadow-lg:0 4px 12px #0006}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.6}#root{min-height:100dvh}.app{max-width:var(--max-width);flex-direction:column;min-height:100dvh;margin:0 auto;padding:16px;display:flex}.app__header{justify-content:space-between;align-items:center;padding:8px 0 16px;display:flex}.app__title{letter-spacing:.15em;color:var(--color-text);font-size:1.25rem;font-weight:700}.app__main{flex-direction:column;flex:1;gap:24px;display:flex}.btn{font-size:.9rem;font-weight:500;font-family:var(--font-sans);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:var(--color-surface);color:var(--color-text);transition:all var(--transition);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:10px 20px;display:inline-flex}.btn:hover{background:var(--color-surface-hover)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-text)}.btn--danger-text{color:var(--color-danger);background:0 0;border:none;padding:6px 12px}.btn--danger-text:hover{color:var(--color-danger-hover);background:0 0}.btn--icon{cursor:pointer;border-radius:var(--radius);transition:background var(--transition);background:0 0;border:none;padding:6px;font-size:1.4rem}.btn--icon:hover{background:var(--color-surface-hover)}.btn--small{padding:6px 12px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.recording-area{flex-direction:column;align-items:center;gap:16px;padding:32px 0;display:flex}.recording-area__state{color:var(--color-text-secondary);min-height:1.4em;font-size:.9rem}.recording-area__hint{color:var(--color-text-secondary);margin-top:4px;font-size:.8rem}.recording-area__info{flex-direction:column;align-items:center;gap:12px;display:flex}.mic-button{border:3px solid var(--color-border);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.mic-button:hover:not(:disabled){border-color:var(--color-primary)}.mic-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.mic-button:disabled{cursor:not-allowed;opacity:.6}.mic-button__icon{background:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;min-width:80px;min-height:80px;font-size:3rem;transition:all .2s;display:flex}.mic-button--recording{border-color:var(--color-recording)}.mic-button--recording .mic-button__icon{background:var(--color-recording);filter:brightness(1.1)}.mic-button--error{border-color:var(--color-danger)}.audio-meter{align-items:flex-end;gap:3px;height:32px;display:flex}.audio-meter__bar{background:var(--color-border);width:4px;height:6px;transition:background var(--transition), height var(--transition);border-radius:2px}.audio-meter__bar--active{background:var(--color-recording);height:100%}.audio-meter__bar:first-child{transition-delay:0s}.audio-meter__bar:nth-child(2){transition-delay:20ms}.audio-meter__bar:nth-child(3){transition-delay:40ms}.audio-meter__bar:nth-child(4){transition-delay:60ms}.audio-meter__bar:nth-child(5){transition-delay:80ms}.audio-meter__bar:nth-child(6){transition-delay:.1s}.audio-meter__bar:nth-child(7){transition-delay:.12s}.audio-meter__bar:nth-child(8){transition-delay:.14s}.audio-meter__bar:nth-child(9){transition-delay:.16s}.audio-meter__bar:nth-child(10){transition-delay:.18s}.audio-meter__bar:nth-child(11){transition-delay:.2s}.audio-meter__bar:nth-child(12){transition-delay:.22s}.timer{font-family:var(--font-mono);color:var(--color-text);letter-spacing:.05em;font-size:2rem;font-weight:500}.live-transcript{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:16px;display:flex}.live-transcript__header{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.live-transcript__badge{background:var(--color-primary);color:#fff;border-radius:999px;padding:2px 8px;font-size:.7rem}.live-transcript__text{white-space:pre-wrap;min-height:1.7em;font-size:1rem;line-height:1.7}.live-transcript__placeholder{color:var(--color-text-secondary)}.transcription-result{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);flex-direction:column;gap:12px;padding:16px;display:flex}.transcription-result__text{width:100%;min-height:120px;font-size:1rem;line-height:1.7;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;padding:12px}.transcription-result__text:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.transcription-result__metrics{color:var(--color-text-secondary);font-size:.75rem;font-family:var(--font-mono);flex-wrap:wrap;gap:16px;display:flex}.transcription-result__actions{gap:8px;display:flex}.error-banner{background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius);color:var(--color-danger);flex-direction:column;gap:8px;padding:16px;font-size:.9rem;display:flex}.navbar{border-bottom:1px solid var(--color-border);margin-bottom:16px;display:flex}.navbar__tab{color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition);font-size:.9rem;font-weight:500;font-family:var(--font-sans);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:12px 8px}.navbar__tab:hover{color:var(--color-text)}.navbar__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.navbar__tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.dialog-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--color-bg);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);flex-direction:column;gap:20px;max-height:90vh;padding:24px;display:flex;overflow-y:auto}.dialog__title{font-size:1.1rem;font-weight:600}.dialog__actions{justify-content:flex-end;gap:8px;display:flex}.form-field{flex-direction:column;gap:4px;display:flex}.form-field__label{color:var(--color-text-secondary);font-size:.8rem;font-weight:500}.form-field__select{font-size:.9rem;font-family:var(--font-sans);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:8px 12px}.form-field__select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.form-field__hint{color:var(--color-text-secondary);font-size:.75rem}.form-field__error{color:var(--color-danger);font-size:.75rem}.form-field--row{flex-direction:row;align-items:center;gap:10px}.form-field--row input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.form-field--row .form-field__hint{flex-basis:100%}.history-panel{flex-direction:column;gap:16px;display:flex}.history-panel__empty{color:var(--color-text-secondary);text-align:center;padding:48px 16px}.history-panel__header{justify-content:space-between;align-items:center;display:flex}.history-panel__header h2{font-size:1.1rem;font-weight:600}.history-panel__list{flex-direction:column;gap:8px;list-style:none;display:flex}.history-entry{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.history-entry__header{background:var(--color-surface);cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--color-text);text-align:left;transition:background var(--transition);border:none;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;display:flex}.history-entry__header:hover{background:var(--color-surface-hover)}.history-entry__header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.history-entry__date{color:var(--color-text-secondary);white-space:nowrap;min-width:100px;font-size:.75rem}.history-entry__preview{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.history-entry__model{color:var(--color-text-secondary);white-space:nowrap;font-size:.7rem}.history-entry__body{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.history-entry__text{border-top:1px solid var(--color-border);white-space:pre-wrap;padding-top:12px;font-size:.9rem;line-height:1.6}.history-entry__metrics{color:var(--color-text-secondary);font-size:.7rem;font-family:var(--font-mono);flex-wrap:wrap;gap:12px;display:flex}.history-entry__actions{gap:8px;display:flex}@media (width<=480px){.app{padding:12px}.recording-area{padding:24px 0}.mic-button__icon{min-width:72px;min-height:72px;font-size:2.5rem}.timer{font-size:1.5rem}.dialog{margin:8px;padding:16px}}@media (width>=1440px){.app{max-width:700px}}@media print{.navbar,.mic-button,.recording-area__hint,.btn{display:none}}::selection{background:var(--color-primary);color:#fff}
