:root{color-scheme:light dark;--bg: #0c0e14;--surface: #161a24;--surface2: #1c2130;--border: #2c3548;--text: #eef1f8;--muted: #8f9bb3;--accent: #62a7e8;--success: #5cbf8a;--danger: #f08080;--radius: 12px;--radius-sm: 8px;font-family:DM Sans,system-ui,sans-serif;line-height:1.55;background:var(--bg);color:var(--text)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}#app{margin:0}.app{max-width:760px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.app-kicker{margin:0 0 .5rem;font-size:.85rem;color:var(--accent);font-weight:600}.app-title{margin:0 0 .75rem;font-size:1.75rem}.lead{margin:0;color:var(--muted)}.workflow{display:flex;flex-direction:column;gap:1.25rem}.step-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.step-card--cta{display:flex;flex-direction:column;gap:.75rem}.step-title{margin:0 0 1rem;font-size:1.05rem}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:2rem 1rem;text-align:center;cursor:pointer;background:var(--surface2);transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#62a7e814}.file-name{margin-top:.75rem;font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--muted)}.field-label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:600}select,input[type=number],input[type=text]{width:100%;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:560px){.grid-2{grid-template-columns:1fr}}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-top:1rem;cursor:pointer}.checkbox-row.compact{margin-top:0;font-size:.88rem}.language-fieldset{margin:1rem 0 0;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.language-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.35rem .75rem}.btn-primary,.btn-secondary{padding:.75rem 1.25rem;border-radius:var(--radius-sm);border:none;font:inherit;font-weight:600;cursor:pointer}.btn-primary{background:var(--accent);color:#081018}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border);align-self:flex-start}.status-text{margin:0;color:var(--muted)}.message{margin:0;padding:.75rem 1rem;border-radius:var(--radius-sm)}.message.error{background:#f080801f;color:var(--danger)}.message.success{background:#5cbf8a1f;color:var(--success)}.result-panel{display:flex;flex-direction:column;gap:.75rem}.skipped-panel h3{margin:0 0 .5rem;font-size:.95rem}.skipped-panel ul{margin:0;padding-left:1.25rem;color:var(--muted)}.skipped-panel li+li{margin-top:.25rem}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#080a10b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-card{width:min(420px,100%);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:0 16px 48px #00000073}.loading-spinner{width:2.25rem;height:2.25rem;margin:0 auto 1rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{margin:0 0 .5rem;text-align:center;font-size:1.05rem;font-weight:600}.loading-message{margin:0 0 1rem;text-align:center;color:var(--muted);font-size:.9rem;line-height:1.5}.progress-track{height:.5rem;border-radius:999px;background:var(--surface2);overflow:hidden;position:relative}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#8ec5f5);transition:width .35s ease;will-change:transform,width}.loading-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.75rem 0 0;font-size:.82rem;color:var(--muted)}.loading-meta-sep{opacity:.5}.loading-hint{margin:.85rem 0 0;padding:.65rem .75rem;border-radius:var(--radius-sm);background:#62a7e81a;color:var(--muted);font-size:.8rem;line-height:1.45}.hint-inline{margin:.5rem 0 0;font-size:.82rem;color:var(--muted)}.mapping-subtitle{margin:.75rem 0 .35rem;font-size:.88rem}.folder-picker{margin-top:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2)}.folder-picker-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.folder-picker-header .field-label{margin-bottom:0}.btn-folder-refresh{padding:.35rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer}.btn-folder-refresh:disabled{opacity:.5;cursor:not-allowed}.folder-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;margin-bottom:.65rem;font-size:.85rem}.folder-crumb{padding:.15rem .35rem;border:none;border-radius:4px;background:transparent;color:var(--accent);font:inherit;cursor:pointer}.folder-crumb:hover{background:#62a7e81f}.folder-crumb-sep{color:var(--muted);-webkit-user-select:none;user-select:none}.folder-list-panel{min-height:4.5rem;max-height:12rem;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.folder-list{margin:0;padding:.35rem;list-style:none}.folder-list-status,.folder-list-error{margin:0;padding:.75rem;font-size:.85rem;color:var(--muted)}.folder-list-error{color:var(--danger)}.folder-item{display:block;width:100%;padding:.45rem .55rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.folder-item:hover{background:#62a7e81a}.folder-picker-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.65rem}.btn-folder-select{margin-top:0}.folder-selected{margin:0;font-size:.85rem;color:var(--muted)}.folder-selected code{font-family:JetBrains Mono,monospace;color:var(--text)}.progress-track--pulse{animation:pulse-track 1.6s ease-in-out infinite}.progress-fill--indeterminate{width:35%!important;animation:indeterminate 1.4s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}@keyframes pulse-track{0%,to{opacity:1}50%{opacity:.65}}
