:root{color-scheme:light;--bg: #f2f4f7;--card: #ffffff;--text: #0f172a;--muted: #475569;--border: rgba(15, 23, 42, .12);--shadow: 0 12px 32px rgba(2, 6, 23, .08);--primary: #2563eb;--primaryHover: #1d4ed8;--dangerBg: rgba(239, 68, 68, .08);--dangerBorder: rgba(239, 68, 68, .25)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji";background:var(--bg);color:var(--text)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.95em}.page{min-height:100%;display:grid;place-items:center;padding:18px}.card{width:min(720px,100%);background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px}.header{margin-bottom:14px}.title{margin:0;font-size:20px;letter-spacing:-.02em}.subtitle{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.uploader{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:14px;border:1px dashed rgba(15,23,42,.22);border-radius:14px;background:#02061705}.fileButton input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.fileButton{display:inline-flex;align-items:center}.fileButtonLabel{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text);cursor:pointer;transition:background .15s ease,transform .05s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.fileButtonLabel:hover{background:#02061708}.fileButtonLabel:active{transform:translateY(1px)}.fileMeta{min-width:0;color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:14px}button.primary{height:42px;padding:0 16px;border-radius:12px;border:1px solid rgba(37,99,235,.4);background:var(--primary);color:#fff;font-weight:600;cursor:pointer;transition:background .15s ease,transform .05s ease,opacity .15s ease}button.primary:hover{background:var(--primaryHover)}button.primary:active{transform:translateY(1px)}button.primary:disabled{cursor:not-allowed;opacity:.55}.hint{color:var(--muted);font-size:12.5px;line-height:1.35;display:inline-flex;align-items:center;gap:10px;min-width:0}.loader{width:18px;height:18px;border-radius:999px;border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;animation:spin .9s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.alert{margin-top:14px;padding:12px;border-radius:12px;background:var(--dangerBg);border:1px solid var(--dangerBorder);color:#991b1b;font-size:13.5px;line-height:1.35;word-break:break-word}.progress{margin-top:14px}.progressMeta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12.5px;line-height:1.35}.progressMeta span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progressMeta span:last-child{flex:0 0 auto;font-variant-numeric:tabular-nums}.progressTrack{height:10px;margin-top:8px;overflow:hidden;border-radius:999px;background:#2563eb1f}.progressFill{height:100%;min-width:4px;border-radius:inherit;background:var(--primary);transition:width .25s ease}.result{margin-top:16px;border-top:1px solid rgba(15,23,42,.08);padding-top:14px}.resultHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.resultTitle{margin:0;font-size:16px}.linkButton{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 12px;border-radius:12px;border:1px solid var(--border);background:#02061705;color:var(--text);text-decoration:none;font-weight:600}.linkButton:hover{background:#0206170d}.preview{margin-top:12px}.previewEmpty{padding:12px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#02061705;color:var(--muted);font-size:13px}.previewImg{width:100%;height:auto;display:block;border-radius:12px;border:1px solid rgba(15,23,42,.08)}.previewFrame{width:100%;height:min(70vh,520px);border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#fff}.previewText{margin:0;padding:12px;border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#02061705;overflow:auto;max-height:min(65vh,520px);font-size:12.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.footer{margin-top:12px;color:#475569e6;font-size:12px;text-align:center}@media(max-width:520px){.card{padding:14px}.uploader,.actions{grid-template-columns:1fr;gap:10px}button.primary,.fileButtonLabel{width:100%}}
