:root{--bg-dark: #090d16;--card-bg: rgba(18, 24, 38, .85);--card-border: rgba(255, 255, 255, .08);--accent-cyan: #06b6d4;--accent-cyan-glow: rgba(6, 182, 212, .25);--accent-violet: #8b5cf6;--accent-violet-glow: rgba(139, 92, 246, .25);--success-green: #10b981;--success-bg: rgba(16, 185, 129, .12);--warning-amber: #f59e0b;--text-main: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--input-bg: #0f172a;--input-border: #334155;--input-focus: #06b6d4;--radius-lg: 16px;--radius-md: 10px;--radius-sm: 6px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Fira Code", monospace;--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);background-image:radial-gradient(at 0% 0%,rgba(139,92,246,.15) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(6,182,212,.12) 0px,transparent 50%);background-attachment:fixed;color:var(--text-main);font-family:var(--font-sans);min-height:100vh;padding:2rem 1rem;line-height:1.5}.app-container{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:1.75rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.header-brand{display:flex;align-items:center;gap:1rem;flex:1}.brand-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--accent-violet),var(--accent-cyan));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 20px var(--accent-violet-glow)}.header-brand h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(to right,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header-brand .subtitle{font-size:.875rem;color:var(--text-muted)}.header-brand code{color:var(--accent-cyan);font-family:var(--font-mono);background:#06b6d41a;padding:.15rem .4rem;border-radius:var(--radius-sm)}.header-actions{display:flex;align-items:center;gap:.75rem}.lang-selector{display:flex;background:var(--bg-tertiary);border:1px solid var(--card-border);padding:.25rem;border-radius:var(--radius-md);gap:.25rem}.btn-lang{background:transparent;border:none;color:var(--text-muted);font-size:.8125rem;font-weight:600;padding:.4rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.4rem}.btn-lang:hover{color:var(--text-main);background:#ffffff0d}.btn-lang.active{background:var(--accent-violet);color:#fff;box-shadow:0 2px 8px var(--accent-violet-glow)}.modal-lg{max-width:820px}.instructions-body{display:flex;flex-direction:column;gap:1.25rem;max-height:70vh;overflow-y:auto;padding-right:.5rem}.guide-section h3{font-size:1.1rem;font-weight:700;color:var(--accent-cyan);margin-bottom:.75rem}.guide-list{list-style:none;display:flex;flex-direction:column;gap:.65rem;font-size:.9rem;color:var(--text-muted)}.guide-list li strong{color:var(--text-main)}.guide-intro{font-size:.9rem;color:var(--text-muted);margin-bottom:1rem}.folder-explain-box{background:#0f172a99;border:1px solid var(--card-border);border-radius:var(--radius-md);padding:1rem;margin-bottom:.75rem}.folder-explain-box h4{font-size:.95rem;font-weight:600;color:var(--accent-violet);margin-bottom:.35rem}.folder-explain-box p{font-size:.85rem;color:var(--text-muted);line-height:1.45}.folder-explain-box code{color:var(--accent-cyan);font-family:var(--font-mono);background:#06b6d41a;padding:.1rem .35rem;border-radius:4px}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:1.5rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 10px 30px #0000004d}.badge{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.badge-accent{background:#8b5cf633;color:#c084fc;border:1px solid rgba(139,92,246,.3)}.badge-outline{background:#ffffff0d;color:var(--text-muted);border:1px solid var(--card-border)}.badge-mapped{background:var(--success-bg);color:var(--success-green);border:1px solid rgba(16,185,129,.3)}.badge-unmapped{background:#64748b26;color:var(--text-dim);border:1px solid rgba(100,116,139,.2)}.upload-section{display:flex;flex-direction:column;gap:1.25rem}.drop-zone{position:relative;border:2px dashed rgba(255,255,255,.15);border-radius:var(--radius-md);padding:2.5rem 1.5rem;text-align:center;transition:var(--transition);cursor:pointer;background:#0f172a66}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent-cyan);background:#06b6d40d;box-shadow:0 0 25px var(--accent-cyan-glow)}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-icon{color:var(--accent-cyan);margin-bottom:.75rem;display:flex;justify-content:center}.drop-zone h3{font-size:1.1rem;font-weight:600;margin-bottom:.35rem}.drop-zone p{font-size:.9rem;color:var(--text-muted)}.browse-link{color:var(--accent-cyan);text-decoration:underline;text-underline-offset:3px;font-weight:500}.upload-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem}.divider-text{font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.file-info-card{background:#0f172acc;border:1px solid rgba(6,182,212,.3);border-radius:var(--radius-md);padding:1rem 1.25rem;animation:fadeIn .3s ease}.file-info-header{display:flex;align-items:center;gap:1rem}.file-icon{width:42px;height:42px;border-radius:var(--radius-sm);background:#06b6d426;color:var(--accent-cyan);display:flex;align-items:center;justify-content:center}.file-details{flex:1}.file-name{font-weight:600;font-size:1rem;color:#fff;font-family:var(--font-mono)}.file-stats{font-size:.82rem;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:var(--transition);border:none;font-family:var(--font-sans)}.btn-primary{background:linear-gradient(135deg,var(--accent-cyan),#0284c7);color:#fff;box-shadow:0 4px 14px var(--accent-cyan-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--accent-cyan-glow);filter:brightness(1.1)}.btn-secondary{background:#ffffff14;color:var(--text-main);border:1px solid var(--card-border)}.btn-secondary:hover{background:#ffffff24;border-color:#fff3}.btn-outline{background:transparent;color:var(--text-muted);border:1px solid var(--card-border)}.btn-outline:hover{color:var(--text-main);border-color:var(--text-muted);background:#ffffff0a}.btn-ghost{background:transparent;color:var(--text-muted);padding:.4rem .75rem}.btn-ghost:hover{color:var(--accent-cyan)}.btn-sm{padding:.4rem .8rem;font-size:.8rem;border-radius:var(--radius-sm)}.mapping-section{display:flex;flex-direction:column;gap:1.25rem;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}.preset-meta-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.preset-name-field{flex:1;min-width:280px;display:flex;flex-direction:column;gap:.4rem}.field-label{font-size:.85rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:.4rem}.tooltip{cursor:help;color:var(--text-dim)}.input-with-extension{display:flex;align-items:center}.form-input{flex:1;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.65rem .9rem;color:var(--text-main);font-family:var(--font-mono);font-size:.95rem;transition:var(--transition)}.input-with-extension .form-input{border-top-right-radius:0;border-bottom-right-radius:0}.ext-badge{background:#ffffff0f;border:1px solid var(--input-border);border-left:none;border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);padding:.65rem .8rem;font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.form-input:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #06b6d426}.plugin-type-field{display:flex;flex-direction:column;gap:.4rem}.plugin-type-toggle{display:flex;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.2rem;gap:.25rem}.btn-type{background:transparent;border:none;color:var(--text-muted);padding:.5rem .9rem;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;gap:.35rem}.btn-type:hover{color:var(--text-main)}.btn-type.active{background:linear-gradient(135deg,var(--accent-violet),var(--accent-cyan));color:#fff;box-shadow:0 2px 10px var(--accent-violet-glow)}.binary-path-field{display:flex;flex-direction:column;gap:.4rem;flex:1.5;min-width:280px}.stats-pills{display:flex;gap:.75rem}.stat-pill{display:flex;flex-direction:column;align-items:center;background:#0f172a99;border:1px solid var(--card-border);padding:.5rem 1rem;border-radius:var(--radius-md);min-width:90px}.stat-value{font-size:1.25rem;font-weight:700;font-family:var(--font-mono)}.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.stat-success .stat-value{color:var(--success-green)}.stat-muted .stat-value{color:var(--text-dim)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1.25rem}.filter-group{display:flex;gap:.35rem;background:#0f172acc;padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--card-border)}.btn-filter{background:transparent;border:none;color:var(--text-muted);padding:.35rem .75rem;font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.btn-filter.active{background:var(--accent-cyan);color:#fff;font-weight:600}.search-box{display:flex;align-items:center;gap:.5rem;background:var(--input-bg);border:1px solid var(--input-border);padding:.45rem .75rem;border-radius:var(--radius-md);flex:1;max-width:320px;color:var(--text-dim)}.search-input{background:transparent;border:none;color:var(--text-main);font-size:.85rem;width:100%}.search-input:focus{outline:none}.param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.param-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:var(--transition);position:relative}.param-card:hover{border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 8px 24px #0006}.param-card.is-mapped{border-left:3px solid var(--success-green)}.param-card.is-unmapped{border-left:3px solid var(--text-dim);opacity:.75}.param-card-header{display:flex;align-items:center;justify-content:space-between}.param-id-badge{font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:var(--accent-cyan);background:#06b6d41a;padding:.2rem .5rem;border-radius:var(--radius-sm)}.param-value-tag{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);background:#0f172a99;padding:.15rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--card-border)}.param-mapping-info{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-muted)}.module-tag{font-weight:600;color:#fff}.param-index-tag{color:var(--accent-violet);font-family:var(--font-mono)}.param-name-field{display:flex;flex-direction:column;gap:.25rem;max-width:49%}.param-name-field label{font-size:.72rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.04em;font-weight:600}.param-config-row{display:flex;gap:.5rem}.config-field{display:flex;flex-direction:column;gap:.2rem;width:50%}.config-field label{font-size:.68rem;text-transform:uppercase;color:var(--text-dim);font-weight:600;letter-spacing:.03em}.form-select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);padding:.45rem .5rem;color:var(--text-main);font-family:var(--font-sans);font-size:.8rem;transition:var(--transition)}.form-select:focus{outline:none;border-color:var(--input-focus)}.field-narrow{flex:1;min-width:0}.field-narrow .form-input{padding:.45rem .4rem;font-size:.8rem;text-align:center}.param-config-subrow{display:flex;align-items:center;gap:.75rem}.checkbox-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--accent-cyan);width:14px;height:14px;cursor:pointer}.param-enum-box{display:flex;flex-direction:column;gap:.25rem;background:#06b6d40d;border:1px solid rgba(6,182,212,.2);border-radius:var(--radius-sm);padding:.5rem}.param-enum-box label{font-size:.7rem;font-weight:600;color:var(--accent-cyan)}.help-hint{font-weight:400;color:var(--text-muted);font-size:.68rem}.export-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(135deg,#8b5cf61f,#06b6d414);border:1px solid rgba(139,92,246,.25)}.export-info h4{font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:.2rem}.export-info p{font-size:.85rem;color:var(--text-muted)}.export-buttons{display:flex;gap:.75rem}.command-box-card{margin-top:1rem;background:#0f172ad9;border:1px solid var(--accent-cyan-glow);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.command-box-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.command-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:700;color:var(--accent-cyan)}.command-desc{font-size:.85rem;color:var(--text-muted);line-height:1.4}.command-code-block{background:#090d16;border:1px solid var(--card-border);border-radius:var(--radius-md);padding:.85rem 1rem;font-family:var(--font-mono);font-size:.9rem;color:#38bdf8;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:999;animation:fadeIn .2s ease}.modal-content{background:#0d1322;border:1px solid var(--card-border);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0009}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--card-border)}.modal-tabs{display:flex;gap:.5rem;padding:.75rem 1.5rem 0;border-bottom:1px solid var(--card-border);background:#0f172a66}.modal-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:.5rem .9rem;font-family:var(--font-mono);font-size:.85rem;font-weight:500;cursor:pointer;transition:var(--transition)}.modal-tab:hover{color:var(--text-main)}.modal-tab.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan);font-weight:600}.modal-title{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.1rem;color:#fff}.btn-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.btn-close:hover{color:#fff}.modal-body{padding:1.25rem 1.5rem;overflow-y:auto;flex:1}.ttl-code{font-family:var(--font-mono);font-size:.83rem;color:#e2e8f0;white-space:pre-wrap;word-break:break-all}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--card-border)}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.app-header{flex-direction:column;align-items:flex-start}.preset-meta-card,.toolbar{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.export-footer{flex-direction:column;align-items:stretch}.export-buttons{flex-direction:column}}.param-card.is-invalid{border:2px solid #ef4444!important;box-shadow:0 0 20px #ef444473!important;background:#ef44440f!important}.validation-error-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid rgba(239,68,68,.18);cursor:pointer;border-radius:var(--radius-sm);transition:background .2s ease,transform .15s ease}.validation-error-item:last-child{border-bottom:none}.validation-error-item:hover{background:#ef444426;transform:translate(4px)}.validation-err-badge{font-family:var(--font-mono);font-weight:700;font-size:.8rem;background:#ef4444;color:#fff;padding:.2rem .55rem;border-radius:4px;white-space:nowrap}.validation-err-msg{font-size:.88rem;color:var(--text-main);line-height:1.4}
