.mojibake-fixer{--mojibake-accent: var(--accent);--mojibake-accent-hot: var(--accent-dark);--mojibake-accent-dark: var(--accent-dark);--mojibake-ink: var(--ink);--mojibake-muted: var(--muted);--mojibake-line: var(--line);--mojibake-line-strong: var(--line-strong);--mojibake-surface: var(--surface);--mojibake-soft: var(--sun-soft);--mojibake-warn: var(--sun-soft);--mojibake-error: #b42318;--mojibake-error-bg: #fff1f0;--mojibake-success: #11705b;margin:2.4rem 0;color:var(--mojibake-ink)}.mojibake-fixer,.mojibake-fixer *{box-sizing:border-box}.mojibake-fixer button,.mojibake-fixer input,.mojibake-fixer textarea{font:inherit}.mojibake-fixer__loading,.mojibake-fixer__eyebrow,.mojibake-fixer__lead,.mojibake-fixer__section-lead,.mojibake-fixer__drop-title,.mojibake-fixer__drop-help,.mojibake-fixer__preview-intro,.mojibake-fixer__note,.mojibake-fixer__footer-note{margin:0}.mojibake-fixer__panel{border:1px solid var(--mojibake-line-strong);border-radius:8px;background:linear-gradient(180deg,var(--mojibake-surface) 0%,var(--sun-soft) 100%);box-shadow:0 18px 36px rgba(var(--black),8%);overflow:hidden}.mojibake-fixer__header{display:grid;gap:.55rem;padding:1.35rem;border-bottom:1px solid var(--mojibake-line);background:var(--mojibake-surface)}.mojibake-fixer__eyebrow{color:var(--mojibake-accent);font-size:.86rem;font-weight:800;line-height:1.4}.mojibake-fixer__title,.mojibake-fixer__section-title{margin:0;color:var(--mojibake-ink);letter-spacing:0;line-height:1.35}.mojibake-fixer__title{font-size:1.45rem}.mojibake-fixer__lead,.mojibake-fixer__section-lead,.mojibake-fixer__drop-help,.mojibake-fixer__preview-intro,.mojibake-fixer__note,.mojibake-fixer__footer-note{color:var(--mojibake-muted);font-size:.92rem;line-height:1.7}.mojibake-fixer__privacy{margin:.25rem 0 0;border:1px solid rgba(122,83,0,.22);border-radius:8px;background:var(--sun-soft);color:var(--mojibake-accent-dark);font-size:.9rem;font-weight:800;line-height:1.6;padding:.72rem .85rem}.mojibake-fixer__grid{display:grid;gap:1rem;padding:1.35rem}.mojibake-fixer__section{display:grid;gap:1rem;border:1px solid var(--mojibake-line);border-radius:8px;background:var(--mojibake-surface);padding:1rem}.mojibake-fixer__section-header{display:flex;gap:.8rem;align-items:flex-start}.mojibake-fixer__step{display:inline-grid;flex:0 0 2.3rem;width:2.3rem;height:2.3rem;place-items:center;border-radius:50%;background:var(--button-bg);color:var(--button-text);font-weight:900;line-height:1}.mojibake-fixer__section-title{font-size:1.1rem}.mojibake-fixer__section-lead{margin-top:.25rem}.mojibake-fixer__drop-zone{display:grid;gap:.8rem;justify-items:center;min-height:11.5rem;padding:1.6rem 1rem;border:2px dashed rgba(122,83,0,.42);border-radius:8px;background:var(--mojibake-soft);text-align:center;transition:background .16s ease,border-color .16s ease,transform .16s ease}.mojibake-fixer__drop-zone--dragging{border-color:var(--mojibake-accent);background:var(--sun-soft);transform:translateY(-1px)}.mojibake-fixer__drop-title{font-size:1.08rem;font-weight:900;line-height:1.45}.mojibake-fixer__button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;border:0;border-radius:6px;background:var(--button-bg);color:var(--button-text);cursor:pointer;font-weight:800;line-height:1.25;padding:.68rem 1rem;text-decoration:none;transition:background .16s ease,color .16s ease,opacity .16s ease,transform .16s ease}.mojibake-fixer__button:hover{background:var(--button-bg-hover);transform:translateY(-1px)}.mojibake-fixer__button:disabled{cursor:not-allowed;opacity:.52;transform:none}.mojibake-fixer__button--secondary{border:1px solid var(--mojibake-accent);background:var(--mojibake-surface);color:var(--mojibake-accent)}.mojibake-fixer__button--hot{background:var(--mojibake-accent-hot);color:#fff}.mojibake-fixer__button--hot:hover{background:var(--mojibake-accent-hot)}.mojibake-fixer__file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mojibake-fixer__message{display:none;border-radius:8px;font-size:.92rem;font-weight:800;line-height:1.6;padding:.75rem .85rem}.mojibake-fixer__message--visible{display:block}.mojibake-fixer__message--info{border:1px solid rgba(122,83,0,.24);background:var(--sun-soft);color:var(--mojibake-accent-dark)}.mojibake-fixer__message--success{border:1px solid rgba(17,112,91,.26);background:#eef8f2;color:var(--mojibake-success)}.mojibake-fixer__message--error{border:1px solid rgba(180,35,24,.24);background:var(--mojibake-error-bg);color:var(--mojibake-error)}.mojibake-fixer__file-details,.mojibake-fixer__preview-area{display:none}.mojibake-fixer__file-details--visible,.mojibake-fixer__preview-area--visible{display:block}.mojibake-fixer__file-details{border:1px solid var(--mojibake-line);border-radius:8px;background:#fffdfb;padding:.85rem}.mojibake-fixer__detail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:0}.mojibake-fixer__detail-item{min-width:0}.mojibake-fixer__detail-label{display:block;color:var(--mojibake-muted);font-size:.82rem;font-weight:800;line-height:1.4}.mojibake-fixer__detail-value{display:block;margin:.2rem 0 0;overflow-wrap:anywhere;font-weight:900;line-height:1.5}.mojibake-fixer__preview-area{margin-top:.2rem}.mojibake-fixer__preview-intro{margin-bottom:.75rem}.mojibake-fixer__encoding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.mojibake-fixer__encoding-option{display:grid;gap:.65rem;min-width:0;border:1px solid var(--mojibake-line);border-radius:8px;background:var(--mojibake-surface);padding:.85rem}.mojibake-fixer__encoding-option:has(input:checked){border-color:var(--mojibake-accent);background:var(--sun-soft);box-shadow:0 0 0 1px #7a530014}.mojibake-fixer__encoding-choice{display:flex;gap:.6rem;align-items:center;cursor:pointer;font-weight:900;line-height:1.4}.mojibake-fixer__encoding-choice input{width:1.15rem;height:1.15rem;accent-color:var(--mojibake-accent)}.mojibake-fixer__badge{display:inline-flex;align-items:center;width:fit-content;min-height:1.7rem;border-radius:999px;background:var(--mojibake-warn);color:var(--button-text);font-size:.82rem;font-weight:900;line-height:1.2;padding:.2rem .6rem}.mojibake-fixer__preview-box{min-height:13rem;max-height:22rem;margin:0;overflow:auto;border:1px solid var(--mojibake-line);border-radius:8px;background:#fffdfb;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9rem;line-height:1.55;overflow-wrap:anywhere;padding:.75rem;white-space:pre-wrap}.mojibake-fixer__save-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;justify-content:space-between;margin-top:.9rem;border:1px solid var(--mojibake-line);border-radius:8px;background:#fffdfb;padding:.85rem}.mojibake-fixer__toggle{display:flex;gap:.6rem;align-items:center;color:var(--ink);cursor:pointer;font-weight:800;line-height:1.45}.mojibake-fixer__toggle input{width:1.2rem;height:1.2rem;accent-color:var(--mojibake-accent)}.mojibake-fixer__note{margin-top:.85rem}.mojibake-fixer__text-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.mojibake-fixer__field-label{display:block;margin-bottom:.45rem;color:var(--mojibake-ink);font-size:.88rem;font-weight:900;line-height:1.4}.mojibake-fixer__textarea{width:100%;min-height:13.5rem;resize:vertical;border:1px solid var(--mojibake-line-strong);border-radius:8px;background:var(--mojibake-surface);color:var(--mojibake-ink);line-height:1.65;padding:.75rem}.mojibake-fixer__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.mojibake-fixer__textarea:focus,.mojibake-fixer__button:focus-visible,.mojibake-fixer__encoding-choice input:focus-visible,.mojibake-fixer__toggle input:focus-visible{border-color:var(--mojibake-accent);box-shadow:0 0 0 3px #5c3d0029;outline:3px solid var(--accent-dark);outline-offset:3px}.mojibake-fixer__footer-note{padding:0 1.35rem 1.35rem;text-align:center}@media(max-width:760px){.mojibake-fixer{margin:2rem 0}.mojibake-fixer__header,.mojibake-fixer__grid,.mojibake-fixer__footer-note{padding-inline:1rem}.mojibake-fixer__section{padding:.9rem}.mojibake-fixer__section-header{flex-direction:column}.mojibake-fixer__detail-list,.mojibake-fixer__encoding-grid,.mojibake-fixer__text-tools{grid-template-columns:1fr}.mojibake-fixer__save-row{align-items:stretch}.mojibake-fixer__save-row .mojibake-fixer__button,.mojibake-fixer__actions .mojibake-fixer__button{width:100%}}
