*{box-sizing:border-box}:root{--bg-primary: #0d0d0d;--bg-secondary: #1a1a1a;--bg-tertiary: #252525;--text-primary: #e5e5e5;--text-secondary: #888;--accent: #3b82f6;--success: #22c55e;--warning: #eab308;--error: #ef4444;font-family:SF Mono,Fira Code,Consolas,monospace;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary)}body{margin:0;min-height:100vh}#root{max-width:900px;margin:0 auto;padding:2rem}.app{display:flex;flex-direction:column;gap:1.5rem}.header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.brand{display:flex;flex-direction:column;gap:.25rem}.logo{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.logo-accent{color:var(--accent)}.tagline{font-size:.75rem;color:var(--text-secondary);font-weight:400}.settings label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.settings input[type=number]{width:5rem;padding:.375rem .5rem;background:var(--bg-tertiary);border:1px solid var(--bg-tertiary);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.875rem;text-align:center}.settings input[type=number]:focus{outline:none;border-color:var(--accent)}.file-upload{border:2px dashed var(--bg-tertiary);border-radius:8px;padding:2rem;text-align:center;transition:all .2s ease;cursor:pointer}.file-upload:hover,.file-upload.dragging{border-color:var(--accent);background:#3b82f60d}.file-upload input[type=file]{display:none}.file-upload label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer}.upload-icon{font-size:2rem;color:var(--text-secondary);line-height:1}.upload-hint{font-size:.75rem;color:var(--text-secondary)}.stats{display:flex;gap:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:8px;font-size:.875rem;flex-wrap:wrap}.filename{color:var(--accent);font-weight:500}.stat{color:var(--text-secondary)}.stat-filter{padding:.25rem .5rem;background:transparent;border:1px solid var(--error);border-radius:4px;color:var(--error);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.stat-filter:hover{background:#ef44441a}.stat-filter.active{background:var(--error);color:#fff}.no-errors{padding:2rem;text-align:center;color:var(--success);background:var(--bg-secondary);border-radius:8px}.subtitle-list{display:flex;flex-direction:column;gap:.5rem}.subtitle-entry{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.entry-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem 1rem;background:var(--bg-tertiary);font-size:.75rem;color:var(--text-secondary)}.entry-meta{display:flex;gap:1rem;flex-shrink:0}.entry-index{font-weight:600}.entry-lines{display:flex;flex-direction:column}.entry-line{display:flex;gap:1rem;padding:.5rem 1rem;font-size:.875rem;border-left:3px solid transparent}.entry-line.ok{border-left-color:var(--success)}.entry-line.warning{border-left-color:var(--warning);background:#eab3080d}.entry-line.error{border-left-color:var(--error);background:#ef44441a}.line-count{min-width:2rem;text-align:right;font-weight:600;color:var(--text-secondary)}.entry-line.ok .line-count{color:var(--success)}.entry-line.warning .line-count{color:var(--warning)}.entry-line.error .line-count{color:var(--error)}.line-text{flex:1;word-break:break-word}.settings-toggle{padding:.375rem .75rem;background:transparent;border:1px solid var(--bg-tertiary);border-radius:4px;color:var(--text-secondary);font-family:inherit;font-size:.75rem;cursor:pointer}.settings-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.settings-panel{display:flex;gap:1rem;flex-wrap:wrap}.timing-error{padding:.125rem .5rem;background:#ef444433;border-radius:4px;color:var(--error);font-size:.7rem;font-weight:500}@media(max-width:480px){#root{padding:1rem}.header{flex-direction:column;align-items:flex-start}.stats{flex-direction:column;gap:.75rem}.entry-header{padding:.5rem .75rem}.entry-line{gap:.5rem;padding:.5rem .75rem}.line-count{min-width:1.5rem;font-size:.8rem}.line-text{font-size:.8rem}.file-upload{padding:1.5rem 1rem}.settings-panel{flex-direction:column}}
