:root{--bg:#0b1020;--text:#e8ecff;--muted:#e8ecffb8;--border:#e8ecff1f;--danger:#ff5c7a;--ok:#35d07f;--primary:#7aa2ff;--mono:ui-monospace, Consolas, monospace;color:var(--text);background:radial-gradient(1200px 600px at 20% -10%, #7aa2ff40, transparent 60%), radial-gradient(1000px 500px at 90% 0%, #35d07f2e, transparent 55%), var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{margin:0}*{box-sizing:border-box}.page{min-height:100vh}.header{max-width:1100px;margin:0 auto;padding:28px 20px 14px}.tabs{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.tabBtn{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff08;border-radius:999px;padding:10px 12px;font-size:13px;font-weight:700}.tabBtn.active{background:linear-gradient(#7aa2ff47,#5d86ff2e);border-color:#7aa2ff8c}.tabBtn:not(.active):hover{border-color:#e8ecff38}.title{letter-spacing:-.3px;font-size:24px;font-weight:700}.subtitle{color:var(--muted);margin-top:6px;font-size:14px}.content{gap:14px;max-width:1100px;margin:0 auto;padding:0 20px 40px;display:grid}.card{border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#121a33eb,#0f1730eb);border-radius:14px;padding:16px}.card h2{margin:0 0 10px;font-size:16px}.uploadPanel{background:#ffffff05;border:1px dashed #e8ecff33;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px;display:flex}.fileInputHidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.uploadHint{margin-bottom:6px;line-height:1.45}.uploadMeta{min-width:280px}.uploadMeta .label{color:var(--muted);font-size:12px}.uploadMeta .value{margin-top:4px;font-size:13px}.actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.btn{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff08;border-radius:12px;padding:10px 12px;font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:linear-gradient(#7aa2ff40,#5d86ff2e);border-color:#7aa2ff73}.btn.subtle{background:0 0}.errorBox{color:#ffdce4f2;background:#ff5c7a14;border:1px solid #ff5c7a59;border-radius:12px;margin-top:12px;padding:10px 12px;font-size:13px}.muted{color:var(--muted);font-size:13px}.results .kv{grid-template-columns:1fr 1fr;gap:10px;display:grid}.results .k{color:var(--muted);font-size:12px}.results .v{margin-top:4px;font-size:13px}.previewBox{margin-top:12px}.pre{border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-all;background:#0000002e;border-radius:12px;margin:8px 0 0;padding:10px 12px;font-size:12px;line-height:1.5;overflow:auto}.sectionTitle{margin-top:14px;font-size:13px;font-weight:700}.table{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid #e8ecff1f;padding:10px 8px}.table th{color:var(--muted);font-weight:700}.mono{font-family:var(--mono)}.okBox{color:#d1ffe8f2;background:#35d07f14;border:1px solid #35d07f59;border-radius:12px;margin-top:10px;padding:10px 12px;font-size:13px}
