@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}*,*: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;--gx-accent-15: color-mix(in srgb, var(--gx-accent) 12%, transparent);--gx-indigo-dim: color-mix(in srgb, var(--gx-indigo) 8%, transparent);color-scheme:light}[data-theme=dark]{color-scheme:dark}button,input{font-family:var(--gx-font-sans)}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)}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--gx-nav-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--gx-border);position:sticky;top:0;z-index:100}.header-top{max-width:var(--gx-max-width);margin:0 auto;padding:var(--gx-space-4) var(--gx-space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--gx-space-4)}.header-top h1{font-size:1.375rem;font-weight:700;color:var(--gx-nav-text);line-height:1.2}.subtitle{font-size:.8rem;color:var(--gx-nav-muted);margin-top:2px}.theme-toggle{background:var(--gx-surface);border:1px solid var(--gx-border);border-radius:var(--gx-radius-pill);padding:var(--gx-space-1) var(--gx-space-3);cursor:pointer;font-size:1rem;color:var(--gx-text);transition:background var(--gx-transition),border-color var(--gx-transition);flex-shrink:0}.theme-toggle:hover{background:var(--gx-surface-hover)}.tab-bar{max-width:var(--gx-max-width);margin:0 auto;padding:0 var(--gx-space-6);display:flex;gap:var(--gx-space-1);border-top:1px solid #424953}.tab{padding:var(--gx-space-2) var(--gx-space-4);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--gx-nav-muted);transition:color var(--gx-transition),border-color var(--gx-transition);margin-bottom:-1px}.tab:hover{color:var(--gx-nav-text)}.tab-active{color:var(--gx-nav-text);border-bottom-color:#90b7f0}.app-main{flex:1;max-width:var(--gx-max-width);margin:0 auto;padding:var(--gx-space-8) var(--gx-space-6);width:100%}.controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--gx-space-6);margin-bottom:var(--gx-space-6)}@media (max-width: 680px){.controls{grid-template-columns:1fr}}.file-upload-area{background:var(--gx-surface);border:2px dashed var(--gx-border);border-radius:var(--gx-radius-lg);padding:var(--gx-space-8) var(--gx-space-6);text-align:center;cursor:pointer;transition:border-color var(--gx-transition),background var(--gx-transition);display:flex;flex-direction:column;align-items:center;gap:var(--gx-space-3)}.file-upload-area:hover:not(.disabled),.file-upload-area.drag-over{border-color:var(--gx-accent);background:var(--gx-accent-dim)}.file-upload-area.disabled{opacity:.5;cursor:not-allowed}.file-upload-area p{color:var(--gx-text-muted);font-size:.875rem}.file-upload-area .upload-icon{font-size:2rem;color:var(--gx-accent)}.file-list{list-style:none;margin-top:var(--gx-space-2);display:flex;flex-direction:column;gap:var(--gx-space-1)}.file-list li{font-size:.8125rem;color:var(--gx-text-muted);background:var(--gx-accent-dim);border-radius:var(--gx-radius-sm);padding:2px var(--gx-space-2)}.run-button{display:inline-flex;align-items:center;gap:var(--gx-space-2);background:var(--gx-accent);color:var(--gx-text-inverted);border:none;border-radius:var(--gx-radius);padding:var(--gx-space-3) var(--gx-space-6);font-size:.9375rem;font-weight:600;cursor:pointer;transition:background var(--gx-transition),transform var(--gx-transition)}.run-button:hover:not(:disabled){background:var(--gx-accent-hover);transform:translateY(-1px)}.run-button:disabled{background:var(--gx-disabled-bg);color:var(--gx-disabled-text);cursor:not-allowed}.export-button{display:inline-flex;align-items:center;gap:var(--gx-space-2);background:var(--gx-surface);color:var(--gx-accent);border:1px solid var(--gx-accent);border-radius:var(--gx-radius);padding:var(--gx-space-2) var(--gx-space-4);font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--gx-transition),color var(--gx-transition)}.export-button:hover{background:var(--gx-accent-dim)}.progress{margin-bottom:var(--gx-space-6)}.progress p{font-size:.875rem;color:var(--gx-text-muted);margin-bottom:var(--gx-space-2)}.progress-bar{height:6px;background:var(--gx-border);border-radius:var(--gx-radius-pill);overflow:hidden}.progress-fill{height:100%;background:var(--gx-gradient);border-radius:var(--gx-radius-pill);transition:width .3s ease}.error{background:#ef444414;border:1px solid var(--gx-error);border-radius:var(--gx-radius);padding:var(--gx-space-4);color:var(--gx-error);font-size:.875rem;margin-bottom:var(--gx-space-6)}.results{margin-top:var(--gx-space-6)}.results h2{font-size:1.125rem;font-weight:600;margin-bottom:var(--gx-space-4);color:var(--gx-text)}.results-table-wrapper{overflow-x:auto;border-radius:var(--gx-radius-lg);border:1px solid var(--gx-border)}.results-table{width:100%;border-collapse:collapse;font-size:.875rem}.results-table th{background:var(--gx-bg-alt);padding:var(--gx-space-3) var(--gx-space-4);text-align:left;font-weight:600;color:var(--gx-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gx-border)}.results-table td{padding:var(--gx-space-3) var(--gx-space-4);border-bottom:1px solid var(--gx-border);color:var(--gx-text);vertical-align:middle}.results-table tr:last-child td{border-bottom:none}.results-table tr:hover td{background:var(--gx-surface-hover)}.log-console{background:var(--gx-code-bg);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:var(--gx-space-4);font-family:var(--gx-font-mono);font-size:.875rem;line-height:1.6;color:var(--gx-text-muted);max-height:280px;overflow-y:auto;margin-top:var(--gx-space-6);position:relative}.log-console-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gx-space-3)}.log-console-header span{font-family:var(--gx-font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gx-text-muted)}.log-copy-btn{background:var(--gx-surface);border:1px solid var(--gx-border);border-radius:var(--gx-radius-sm);padding:2px var(--gx-space-2);font-size:.75rem;cursor:pointer;color:var(--gx-text-muted);transition:background var(--gx-transition)}.log-copy-btn:hover{background:var(--gx-surface-hover)}.log-line{display:flex;gap:var(--gx-space-3)}.log-line-num{color:var(--gx-text-muted);user-select:none;min-width:2.5rem;text-align:right;flex-shrink:0}.log-line-text{color:var(--gx-text-muted);word-break:break-all}.about-page{max-width:720px}.about-page h2{font-size:1.375rem;font-weight:700;margin-bottom:var(--gx-space-4);color:var(--gx-text)}.about-page h3{font-size:1rem;font-weight:600;margin-top:var(--gx-space-6);margin-bottom:var(--gx-space-2);color:var(--gx-text)}.about-page p{color:var(--gx-text-muted);margin-bottom:var(--gx-space-4);line-height:1.75}.about-page ul{padding-left:var(--gx-space-6);color:var(--gx-text-muted);margin-bottom:var(--gx-space-4)}.about-page ul li{margin-bottom:var(--gx-space-2)}.privacy-note{background:var(--gx-accent-dim);border:1px solid var(--gx-accent-15);border-radius:var(--gx-radius);padding:var(--gx-space-4);color:var(--gx-accent);font-size:.875rem;margin-top:var(--gx-space-6)}.app-footer{background:var(--gx-bg-alt);border-top:1px solid var(--gx-border);padding:var(--gx-space-6);margin-top:auto}.footer-inner{max-width:var(--gx-max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--gx-space-3);font-size:.8125rem;color:var(--gx-text-muted)}.footer-links{display:flex;gap:var(--gx-space-4)}.footer-links a{color:var(--gx-text-muted);transition:color var(--gx-transition)}.footer-links a:hover{color:var(--gx-accent)}.summary-cards{display:flex;flex-wrap:wrap;gap:var(--gx-space-4);margin-bottom:var(--gx-space-6)}.summary-card{background:var(--gx-surface);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:var(--gx-space-4) var(--gx-space-6);min-width:160px;flex:1;box-shadow:var(--gx-shadow)}.summary-card-value{font-size:2rem;font-weight:700;color:var(--gx-accent);line-height:1.1;margin-bottom:var(--gx-space-1)}.summary-card-label{font-size:.8125rem;color:var(--gx-text-muted);font-weight:500}.badge{display:inline-block;padding:2px var(--gx-space-2);border-radius:var(--gx-radius-pill);font-size:.75rem;font-weight:600;line-height:1.4}.badge-full{background:#16a34a1f;color:var(--gx-success);border:1px solid rgba(22,163,74,.25)}.badge-partial{background:#f59e0b1f;color:var(--gx-warning);border:1px solid rgba(245,158,11,.25)}.inc-badge{background:var(--gx-indigo-dim);color:var(--gx-indigo);border:1px solid rgba(99,102,241,.2)}.coverage-bar-container{display:flex;align-items:center;gap:var(--gx-space-2);min-width:120px}.coverage-bar-track{flex:1;height:6px;background:var(--gx-border);border-radius:var(--gx-radius-pill);overflow:hidden}.coverage-bar-fill{height:100%;background:var(--gx-gradient);border-radius:var(--gx-radius-pill);transition:width .4s ease}.coverage-bar-pct{font-size:.8125rem;font-weight:600;color:var(--gx-text);min-width:2.75rem;text-align:right}.options-panel{background:var(--gx-surface);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg);padding:var(--gx-space-4) var(--gx-space-6);box-shadow:var(--gx-shadow)}.options-panel h3{font-size:.9375rem;font-weight:600;color:var(--gx-text);margin-bottom:var(--gx-space-4)}.options-row{display:flex;align-items:center;gap:var(--gx-space-3);margin-bottom:var(--gx-space-3);flex-wrap:wrap}.options-label{font-size:.875rem;color:var(--gx-text-muted);min-width:10rem;flex-shrink:0}.options-panel input[type=number],.options-panel input[type=range]{background:var(--gx-bg-alt);border:1px solid var(--gx-border);border-radius:var(--gx-radius-sm);color:var(--gx-text);padding:var(--gx-space-1) var(--gx-space-2);font-size:.875rem;transition:border-color var(--gx-transition)}.options-panel input[type=number]{width:5rem}.options-panel input[type=number]:focus,.options-panel input[type=range]:focus{outline:none;border-color:var(--gx-accent)}.options-panel input[type=checkbox]{accent-color:var(--gx-accent);width:1rem;height:1rem;cursor:pointer}.options-range-value{font-size:.875rem;font-weight:600;color:var(--gx-accent);min-width:2.5rem}.options-advanced{margin-top:var(--gx-space-4);border-top:1px solid var(--gx-border);padding-top:var(--gx-space-4)}.options-advanced summary{font-size:.875rem;font-weight:500;color:var(--gx-text-muted);cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:var(--gx-space-2)}.options-advanced summary::-webkit-details-marker{display:none}.options-advanced summary:before{content:"+";font-size:1rem;color:var(--gx-accent);line-height:1}.options-advanced[open] summary:before{content:"-"}.options-advanced .advanced-body{margin-top:var(--gx-space-3);display:flex;flex-direction:column;gap:var(--gx-space-2)}.empty-state{text-align:center;padding:var(--gx-space-8);color:var(--gx-text-muted);background:var(--gx-surface);border:1px solid var(--gx-border);border-radius:var(--gx-radius-lg)}.empty-state p{font-size:1rem;font-weight:500;margin-bottom:var(--gx-space-2)}.empty-state small{font-size:.8125rem}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gx-space-4);flex-wrap:wrap;gap:var(--gx-space-3)}.run-section{display:flex;align-items:center;gap:var(--gx-space-4);margin-bottom:var(--gx-space-6);flex-wrap:wrap}.tab,.options-panel input[type=number],.options-panel input[type=range]{line-height:16px}.run-button{line-height:17px}
