@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/assets/ibm-plex-sans-latin-variable-IvpUvPa2.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-mono-latin-400-DMJ8VG8y.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-mono-latin-500-DSY6xOcd.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/ibm-plex-mono-latin-700-7sUh57Bg.woff2) format("woff2")}:root{--gx-bg: #f5f6f7;--gx-bg-alt: #ffffff;--gx-surface: #ffffff;--gx-surface-hover: #eceef1;--gx-bg-elevated: #ffffff;--gx-text: #25282e;--gx-text-muted: #5d636d;--gx-text-bright: #25282e;--gx-text-inverted: #ffffff;--gx-border: #cbd0d7;--gx-accent: #245db4;--gx-accent-hover: #1c4b94;--gx-indigo: #6366F1;--gx-success: #287447;--gx-warning: #976315;--gx-error: #b52e38;--gx-accent-dim: rgba(36, 93, 180, .06);--gx-nav-bg: #1c2027;--gx-nav-text: #f2f4f7;--gx-nav-muted: #c0c7d1;--gx-code-bg: #f0f1f3;--gx-shadow: none;--gx-transition: .2s ease;--gx-max-width: 1280px;--gx-radius-sm: 4px;--gx-radius: 4px;--gx-radius-lg: 6px;--gx-radius-pill: 4px;--gx-font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--gx-font-mono: "IBM Plex Mono", ui-monospace, monospace;--gx-gradient: var(--gx-accent);--gx-shadow-md: 0 3px 10px rgba(0, 0, 0, .1);--gx-tag-bg: #eef0f3;--gx-tag-border: #cbd0d7;--gx-tag-text: #505966;--gx-info: #3b82f6;--gx-disabled-bg: #e4e7eb;--gx-disabled-text: #505965}[data-theme=dark]{--gx-bg: #191c21;--gx-bg-alt: #23272e;--gx-surface: #23272e;--gx-surface-hover: #2d323a;--gx-bg-elevated: #23272e;--gx-text: #e9ecf1;--gx-text-muted: #b0b7c2;--gx-text-bright: #e9ecf1;--gx-text-inverted: #0f172a;--gx-border: #424953;--gx-accent: #90b7f0;--gx-accent-hover: #aecbf5;--gx-indigo: #818cf8;--gx-success: #83c79e;--gx-warning: #dfb674;--gx-error: #f19aa1;--gx-accent-dim: rgba(144, 183, 240, .08);--gx-nav-bg: #14171b;--gx-code-bg: #191c21;--gx-shadow: none;--gx-gradient: var(--gx-accent);--gx-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--gx-tag-bg: #2d323a;--gx-tag-border: #424953;--gx-tag-text: #c4cbd5;--gx-info: #60a5fa;--gx-disabled-bg: #343b46;--gx-disabled-text: #e4e9f0}body{font-family:var(--gx-font-sans);background-color:var(--gx-bg);color:var(--gx-text);line-height:1.7;transition:background-color var(--gx-transition),color var(--gx-transition);margin:0}*{transition:background-color var(--gx-transition),border-color var(--gx-transition),color var(--gx-transition)}code{font-family:var(--gx-font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--gx-bg)}::-webkit-scrollbar-thumb{background:var(--gx-border);border-radius:var(--gx-radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--gx-text-muted)}.gx-nav{position:sticky;top:0;z-index:40;background:var(--gx-nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--gx-border)}.gx-nav-inner{max-width:80rem;margin:0 auto;padding:0 1rem}@media (min-width: 640px){.gx-nav-inner{padding:0 1.5rem}}@media (min-width: 1024px){.gx-nav-inner{padding:0 2rem}}.gx-nav-row{display:flex;align-items:center;justify-content:space-between;height:60px}.gx-nav-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;opacity:1;transition:opacity var(--gx-transition)}.gx-nav-logo:hover{opacity:.85}.gx-nav-logo-icon{width:28px;height:28px;flex-shrink:0}.gx-nav-logo-name{font-size:1.125rem;font-weight:700;color:var(--gx-text);margin:0;line-height:1.3}.gx-nav-logo-version{font-size:.75rem;font-weight:400;margin-left:.25rem;color:var(--gx-text-muted)}.gx-nav-logo-sub{font-size:.75rem;color:var(--gx-text-muted);margin:0;line-height:1.2}.gx-nav-desktop{display:none;align-items:center;gap:1.5rem}@media (min-width: 768px){.gx-nav-desktop{display:flex}}.gx-nav-link{font-size:.875rem;font-weight:500;color:var(--gx-text-muted);text-decoration:none;transition:color var(--gx-transition);display:inline-flex;align-items:center;gap:.25rem}.gx-nav-link:hover{color:var(--gx-text)}.gx-nav-link-icon{width:14px;height:14px}.gx-nav-mobile-toggle{display:flex;align-items:center;gap:.75rem}@media (min-width: 768px){.gx-nav-mobile-toggle{display:none}}.gx-nav-hamburger{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:4px;color:var(--gx-text-muted);display:flex;align-items:center}.gx-nav-hamburger:hover{color:var(--gx-text)}.gx-nav-hamburger-icon{width:20px;height:20px}.gx-nav-dropdown{display:block;padding:0 1rem 1rem;border-top:1px solid var(--gx-border);background:var(--gx-nav-bg)}@media (min-width: 768px){.gx-nav-dropdown{display:none}}.gx-nav-dropdown-link{display:block;font-size:.875rem;padding:.5rem 0;color:var(--gx-text-muted);text-decoration:none;transition:color var(--gx-transition)}.gx-nav-dropdown-link:hover{color:var(--gx-text)}.gx-footer{margin-top:auto;padding:1.5rem 0;border-top:1px solid var(--gx-border);background:var(--gx-bg-alt)}.gx-footer-inner{max-width:80rem;margin:0 auto;padding:0 1rem}@media (min-width: 640px){.gx-footer-inner{padding:0 1.5rem}}@media (min-width: 1024px){.gx-footer-inner{padding:0 2rem}}.gx-footer-content{display:flex;flex-direction:column;align-items:center;gap:1rem}@media (min-width: 768px){.gx-footer-content{flex-direction:row;justify-content:space-between}}.gx-footer-text{font-size:.875rem;color:var(--gx-text-muted)}.gx-footer-text-title{font-weight:600;color:var(--gx-text);margin:0 0 .25rem}.gx-footer-text-sub{margin:0}.gx-footer-links{display:flex;gap:1.5rem;font-size:.875rem}.gx-footer-link{color:var(--gx-text-muted);text-decoration:none;background:none;border:none;cursor:pointer;padding:0;font-size:.875rem;transition:color var(--gx-transition)}.gx-footer-link:hover{color:var(--gx-accent)}.gx-theme-toggle{display:flex;align-items:center;border-radius:var(--gx-radius-pill);border:1px solid var(--gx-border);overflow:hidden;font-size:.75rem;font-weight:500}.gx-theme-toggle.disabled{pointer-events:none}.gx-theme-btn{display:flex;align-items:center;justify-content:center;padding:.375rem .75rem;background:none;border:none;cursor:pointer;transition:background var(--gx-transition),color var(--gx-transition);color:var(--gx-text-muted)}.gx-theme-btn:hover{color:var(--gx-text)}.gx-theme-btn-icon{width:14px;height:14px}.gx-theme-btn.active{background:var(--gx-accent);color:var(--gx-text-inverted)}.gx-console{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:1.5rem;margin-top:1.5rem}.gx-console-progress{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gx-border)}.gx-console-progress-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.gx-console-progress-step{font-size:.875rem;font-weight:500;color:var(--gx-text)}.gx-console-progress-pct{font-size:.875rem;color:var(--gx-text-muted)}.gx-console-progress-msg{margin-top:.5rem;font-size:.75rem;color:var(--gx-text-muted)}.gx-console-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.gx-console-title-row{display:flex;align-items:center;gap:.5rem}.gx-console-toggle{background:none;border:none;cursor:pointer;color:var(--gx-text-muted);padding:0;font-size:.75rem}.gx-console-title{font-weight:600;color:var(--gx-text);margin:0;font-size:.875rem}.gx-console-count{font-size:.75rem;color:var(--gx-text-muted)}.gx-console-copy{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;padding:.25rem .75rem;background:transparent;color:var(--gx-text);border:1px solid var(--gx-border);border-radius:var(--gx-radius);cursor:pointer;transition:all var(--gx-transition);font-weight:600}.gx-console-copy:hover{border-color:var(--gx-accent);color:var(--gx-accent)}.gx-console-copy-icon{width:16px;height:16px}.gx-console-body{font-family:var(--gx-font-mono);font-size:.875rem;line-height:1.65;padding:1rem;border-radius:var(--gx-radius);max-height:24rem;overflow-y:auto;background:var(--gx-code-bg);color:var(--gx-text);border:1px solid var(--gx-border)}.gx-console-empty{color:var(--gx-text-muted)}.gx-console-line{margin-bottom:.25rem;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.card{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:1.5rem;transition:border-color var(--gx-transition)}.card:hover{border-color:var(--gx-border)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gx-accent);color:var(--gx-text-inverted);font-weight:600;font-size:.875rem;padding:.7rem 1.4rem;border-radius:var(--gx-radius);border:none;cursor:pointer;transition:all var(--gx-transition)}.btn-primary:hover:not(:disabled){background:var(--gx-accent-hover)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:transparent;color:var(--gx-text);font-weight:600;font-size:.875rem;padding:.7rem 1.4rem;border-radius:var(--gx-radius);border:1px solid var(--gx-border);cursor:pointer;transition:all var(--gx-transition)}.btn-secondary:hover{border-color:var(--gx-accent);color:var(--gx-accent)}.input-field,.gx-input,.gx-select{background:var(--gx-bg);border:1px solid var(--gx-border);color:var(--gx-text);border-radius:var(--gx-radius);padding:.5rem .75rem;font-size:.875rem;font-family:inherit;transition:border-color var(--gx-transition);outline:none}.input-field:focus,.gx-input:focus,.gx-select:focus{border-color:var(--gx-accent);box-shadow:none}.gx-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;font-family:inherit;font-weight:600;font-size:.875rem;padding:.6rem 1.25rem;border-radius:var(--gx-radius);border:none;cursor:pointer;transition:all var(--gx-transition)}.gx-btn-sm{padding:.375rem .875rem;font-size:.8125rem}.gx-btn-primary{background:var(--gx-accent);color:var(--gx-text-inverted)}.gx-btn-primary:hover:not(:disabled){background:var(--gx-accent-hover)}.gx-btn-secondary{background:transparent;color:var(--gx-text);border:1px solid var(--gx-border)}.gx-btn-secondary:hover:not(:disabled){border-color:var(--gx-accent);color:var(--gx-accent)}.label{display:block;font-size:.8125rem;font-weight:500;color:var(--gx-text);margin-bottom:.5rem}.section-title{font-size:1.25rem;font-weight:700;color:var(--gx-text);margin-bottom:1rem;letter-spacing:-.01em}.progress-bg{background:var(--gx-bg);height:6px;border-radius:var(--gx-radius-pill);overflow:hidden}.progress-bar{background:var(--gx-accent);height:6px;border-radius:var(--gx-radius-pill);transition:width .3s ease}.gx-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem;background:#0009}.gx-modal{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);max-width:28rem;width:100%;padding:1.5rem}.gx-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.gx-modal-title{font-size:1.125rem;font-weight:700;color:var(--gx-text);margin:0}.gx-modal-close{background:none;border:none;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--gx-text-muted);padding:0}.gx-modal-close:hover{color:var(--gx-text)}.gx-modal-body{font-size:.875rem;color:var(--gx-text);display:flex;flex-direction:column;gap:.75rem}.gx-modal-email{font-family:var(--gx-font-mono);font-weight:700;color:var(--gx-accent);margin:0}.gx-modal-email a{color:var(--gx-accent);text-decoration:none}.gx-modal-email a:hover{text-decoration:underline}.gx-modal-checklist{background:var(--gx-bg);border:1px solid var(--gx-border);border-radius:var(--gx-radius);padding:.75rem 1rem}.gx-modal-checklist-title{font-weight:600;margin:0 0 .5rem;color:var(--gx-text)}.gx-modal-checklist-items{margin:0;padding-left:1.25rem;color:var(--gx-text-muted);display:flex;flex-direction:column;gap:.25rem}.gx-modal-github-hint{font-size:.75rem;color:var(--gx-text-muted);margin:0}.gx-modal-github-hint a{color:var(--gx-accent);text-decoration:underline}.gx-file-upload{width:100%}.gx-file-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:140px;border:2px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--gx-bg-alt)}.gx-file-upload-area:hover{border-color:var(--gx-accent);background:var(--gx-accent-dim)}.gx-file-upload-area input[type=file]{display:none}.gx-file-upload-icon{width:32px;height:32px;margin-bottom:.75rem;color:var(--gx-accent);opacity:.8}.gx-file-upload-label{font-size:.95rem;font-weight:500;color:var(--gx-text);margin-bottom:.25rem}.gx-file-upload-hint{font-size:.8rem;color:var(--gx-text-muted)}.gx-file-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--gx-text-muted);max-height:120px;overflow-y:auto}.gx-progress-wrap{width:100%}.gx-progress-label{margin:.5rem 0 0;font-size:.85rem;color:var(--gx-text-muted)}.gx-alert{display:flex;gap:.75rem;border-radius:var(--gx-radius);border:1px solid;padding:1rem;font-size:.875rem;color:var(--gx-text)}.gx-alert--info{background:color-mix(in srgb,var(--gx-info) 10%,transparent);border-color:color-mix(in srgb,var(--gx-info) 30%,transparent)}.gx-alert--warning{background:color-mix(in srgb,var(--gx-warning) 10%,transparent);border-color:color-mix(in srgb,var(--gx-warning) 30%,transparent)}.gx-alert--error{background:color-mix(in srgb,var(--gx-error) 10%,transparent);border-color:color-mix(in srgb,var(--gx-error) 30%,transparent)}.gx-alert--success{background:color-mix(in srgb,var(--gx-success) 10%,transparent);border-color:color-mix(in srgb,var(--gx-success) 30%,transparent)}.gx-alert-icon{flex-shrink:0}.gx-alert-icon--info{color:var(--gx-info)}.gx-alert-icon--warning{color:var(--gx-warning)}.gx-alert-icon--error{color:var(--gx-error)}.gx-alert-icon--success{color:var(--gx-success)}.gx-alert-body{flex:1}.gx-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--gx-radius-pill);font-size:.75rem;font-weight:600;border:1px solid;white-space:nowrap}.gx-badge--success{background:color-mix(in srgb,var(--gx-success) 12%,transparent);border-color:color-mix(in srgb,var(--gx-success) 30%,transparent);color:var(--gx-success)}.gx-badge--warning{background:color-mix(in srgb,var(--gx-warning) 12%,transparent);border-color:color-mix(in srgb,var(--gx-warning) 30%,transparent);color:var(--gx-warning)}.gx-badge--error{background:color-mix(in srgb,var(--gx-error) 12%,transparent);border-color:color-mix(in srgb,var(--gx-error) 30%,transparent);color:var(--gx-error)}.gx-badge--info{background:color-mix(in srgb,var(--gx-info) 12%,transparent);border-color:color-mix(in srgb,var(--gx-info) 30%,transparent);color:var(--gx-info)}.gx-badge--muted{background:color-mix(in srgb,var(--gx-text-muted) 12%,transparent);border-color:color-mix(in srgb,var(--gx-text-muted) 30%,transparent);color:var(--gx-text-muted)}:root :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--gx-accent);outline-offset:3px}.gx-theme-btn:focus-visible{outline-offset:-3px}.gx-nav-logo-name{color:var(--gx-nav-text)}.gx-nav-logo-icon{stroke:var(--gx-nav-text)}.gx-nav-logo-version,.gx-nav-logo-sub,.gx-nav-link,.gx-nav-dropdown-link,.gx-nav-hamburger,.gx-nav .gx-theme-btn{color:var(--gx-nav-muted)}.gx-nav-link:hover,.gx-nav-dropdown-link:hover,.gx-nav-hamburger:hover{color:var(--gx-nav-text)}.gx-nav .gx-theme-toggle{border-color:#646d7a}.gx-nav .gx-theme-btn.active{color:var(--gx-text-inverted)}.gx-file-upload-icon{color:var(--gx-text-muted)}input{accent-color:var(--gx-accent)}::selection{background:var(--gx-accent);color:var(--gx-text-inverted)}:root button:disabled{opacity:1;background:var(--gx-disabled-bg);color:var(--gx-disabled-text);cursor:not-allowed}.gx-nav :is(a,button,input,select,textarea):focus-visible{outline-color:var(--gx-nav-text)}.gx-nav .gx-theme-btn:disabled{background:var(--gx-disabled-bg);color:var(--gx-disabled-text)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--gx-max-width: 1080px;--gx-nav-height: 60px;--gx-space-1: .25rem;--gx-space-2: .5rem;--gx-space-3: .75rem;--gx-space-4: 1rem;--gx-space-6: 1.5rem;--gx-space-8: 2rem}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--gx-font-sans);background:var(--gx-bg);color:var(--gx-text);line-height:1.7;font-size:1rem;min-height:100vh;display:flex;flex-direction:column;transition:background-color .3s ease,color .3s ease}a{color:var(--gx-accent);text-decoration:none;transition:color var(--gx-transition)}a:hover{color:var(--gx-accent-hover)}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}.app{max-width:var(--gx-max-width);margin:0 auto;padding:2rem 2rem 1rem;min-height:100vh}.app-header{margin-bottom:2.5rem}.header-top{display:flex;align-items:center;justify-content:space-between}.app-header h1{margin:0;font-size:2.25rem;font-weight:800;letter-spacing:-.03em;background:var(--gx-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{margin:.3rem 0 0;color:var(--gx-text-muted);font-size:.95rem;font-weight:400}.theme-toggle{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:10px;padding:.45rem .7rem;cursor:pointer;font-size:1.15rem;line-height:1;transition:all .2s;color:var(--gx-text);box-shadow:var(--gx-shadow)}.theme-toggle:hover{background:var(--gx-bg-elevated);border-color:var(--gx-accent);transform:scale(1.05)}.tab-bar{display:flex;gap:0;margin-top:1.25rem;border-bottom:2px solid var(--gx-border)}.tab{padding:.6rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:500;color:var(--gx-text-muted);transition:color .2s,border-color .2s}.tab:hover{color:var(--gx-text)}.tab-active{color:var(--gx-accent);border-bottom-color:var(--gx-accent);font-weight:600}.controls{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem}@media (max-width: 768px){.controls{grid-template-columns:1fr}}.file-upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;border:2px dashed var(--gx-border);border-radius:12px;padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .25s;background:var(--gx-bg-alt);box-shadow:var(--gx-shadow)}.file-upload-area:hover{border-color:var(--gx-accent);background:var(--gx-accent-dim);box-shadow:var(--gx-shadow-md);transform:translateY(-1px)}.file-upload-area input[type=file]{display:none}.file-upload-icon{width:40px;height:40px;margin-bottom:.75rem;color:var(--gx-accent);opacity:.8}.file-upload-label{color:var(--gx-text);font-size:.9rem;line-height:1.5}.file-upload-hint{font-size:.8rem;color:var(--gx-text-muted);margin-top:.25rem}.file-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;max-height:5.5rem;overflow-y:auto}.file-list li{background:var(--gx-tag-bg);border:1px solid var(--gx-tag-border);padding:.2rem .65rem;border-radius:20px;font-size:.8rem;font-family:var(--gx-font-mono);color:var(--gx-tag-text)}.options-panel{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:var(--gx-shadow)}.options-panel h3{margin:0 0 .75rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gx-text-muted)}.options-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gx-text);cursor:pointer;user-select:none}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--gx-accent);cursor:pointer}.checkbox-label:has(input:disabled){opacity:.5;cursor:not-allowed}.run-button{width:100%;padding:.75rem 2rem;background:var(--gx-gradient);color:var(--gx-text-inverted);border:none;border-radius:10px;font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--gx-shadow);margin-bottom:1.5rem}.run-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--gx-shadow-md)}.run-button:disabled{background:var(--gx-disabled-bg);color:var(--gx-disabled-text);opacity:1;cursor:not-allowed;box-shadow:none}.export-button{padding:.45rem 1rem;background:var(--gx-bg-alt);color:var(--gx-accent);border:1px solid var(--gx-accent);border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.export-button:hover{background:var(--gx-accent);color:#fff}.progress{margin-bottom:1.5rem;background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:var(--gx-shadow)}.progress-bar{width:100%;height:8px;background:var(--gx-bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--gx-gradient);transition:width .4s ease-out;border-radius:4px}.progress-text{margin:.6rem 0 0;font-size:.8rem;color:var(--gx-text-muted);font-family:var(--gx-font-mono)}.error{background:color-mix(in srgb,var(--gx-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--gx-error) 20%,transparent);border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.5rem}.error p{margin:0;color:var(--gx-error);font-size:.9rem}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}@media (max-width: 768px){.summary-cards{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.25rem;text-align:center;box-shadow:var(--gx-shadow)}.stat-value{font-size:1.75rem;font-weight:800;color:var(--gx-accent);font-family:var(--gx-font-mono);line-height:1;margin-bottom:.4rem}.stat-label{font-size:.8rem;color:var(--gx-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem}@media (max-width: 768px){.charts-grid{grid-template-columns:1fr}}.chart-section{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:var(--gx-shadow)}.chart-section h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:var(--gx-text)}.results-export{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:var(--gx-shadow)}.results-export h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:var(--gx-text)}.export-options{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.export-actions{display:flex;gap:.75rem}.log-console{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.5rem;margin-top:1.5rem;box-shadow:var(--gx-shadow)}.log-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.log-header h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--gx-text)}.log-header-right{display:flex;align-items:center;gap:.75rem}.log-count{font-size:.8rem;color:var(--gx-text-muted);font-family:var(--gx-font-mono)}.copy-log-button{padding:.3rem .7rem;font-size:.75rem;font-weight:600;border:1px solid var(--gx-border);border-radius:6px;background:var(--gx-bg-alt);color:var(--gx-text-muted);cursor:pointer;transition:all .2s ease}.copy-log-button:hover{background:var(--gx-accent);color:#fff;border-color:var(--gx-accent)}.log-body{max-height:200px;overflow-y:auto;background:var(--gx-bg-elevated);border:1px solid var(--gx-border);border-radius:8px;padding:.75rem;font-family:var(--gx-font-mono);font-size:14px;line-height:1.6}.log-line{color:var(--gx-text);white-space:pre-wrap;word-break:break-all}.log-index{color:var(--gx-text-muted);margin-right:.75rem;user-select:none}.about-page{max-width:700px}.about-page section{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:12px;padding:1.75rem;margin-bottom:1.5rem;box-shadow:var(--gx-shadow)}.about-page h2{margin:0 0 .75rem;font-size:1.2rem;font-weight:700;color:var(--gx-text)}.about-page h3{margin:0 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--gx-text)}.about-page p{margin:0 0 .75rem;color:var(--gx-text);line-height:1.7}.about-role{color:var(--gx-text-muted)!important;font-size:.95rem}.about-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.about-links a{display:inline-flex;align-items:center;gap:.4rem;color:var(--gx-accent);text-decoration:none;font-size:.85rem;font-weight:500;padding:.35rem .85rem;border:1px solid var(--gx-border);border-radius:20px;background:var(--gx-bg-elevated);transition:all .2s}.about-links a:hover{color:#fff;background:var(--gx-accent);border-color:var(--gx-accent)}.privacy-note{display:flex;align-items:flex-start;gap:.75rem;background:var(--gx-accent-dim);border:1px solid var(--gx-tag-border);border-radius:10px;padding:1rem 1.25rem;margin-top:.5rem}.privacy-note svg{flex-shrink:0;width:20px;height:20px;color:var(--gx-accent);margin-top:.1rem}.privacy-note p{margin:0;font-size:.9rem;color:var(--gx-text)}.heatmap-scroll{overflow-x:auto}.heatmap-grid{display:inline-grid;border:1px solid var(--gx-border);border-radius:8px;overflow:hidden;font-size:.7rem;font-family:var(--gx-font-mono)}.heatmap-cell{min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.heatmap-label{padding:.25rem .5rem;font-size:.7rem;color:var(--gx-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.heatmap-corner{background:var(--gx-bg-elevated)}.app-footer{margin-top:auto;border-top:1px solid var(--gx-border);padding:2rem;font-size:.8rem;color:var(--gx-text-muted)}.footer-inner{max-width:var(--gx-max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer-links{display:flex;gap:1.5rem}.footer-links a{color:var(--gx-text-muted);font-size:.8rem}.footer-links a:hover{color:var(--gx-accent)}.tab-bar{background:var(--gx-nav-bg)}.tab{color:var(--gx-nav-muted)}.tab:hover,.tab-active{color:var(--gx-nav-text)}.tab-active{border-bottom-color:var(--gx-nav-text)}.theme-toggle,.run-button,.export-button,.copy-log-button,.log-body,.heatmap-grid,.about-links a,.privacy-note,.error{border-radius:var(--gx-radius)}.file-upload-area,.options-panel,.progress,.stat-card,.chart-section,.results-export,.log-console,.about-page section{border-radius:var(--gx-radius-lg)}.file-list li{border-radius:var(--gx-radius-pill)}.log-body{background:var(--gx-code-bg)}.tab{line-height:17px}.recharts-text{fill:var(--gx-text-muted)}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line,.recharts-cartesian-grid line{stroke:var(--gx-border)}
