:root{--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--background-color-light: #f4f6f8;--surface-color-light: #ffffff;--text-color-light: #1a1a1a;--subtle-text-color-light: #6a737d;--border-color-light: #e1e4e8;--primary-color-light: #0366d6;--primary-hover-color-light: #005cc5;--danger-color-light: #d73a49;--danger-hover-color-light: #cb2431;--warning-color-light: #f9a825;--info-color-light: #6a737d;--success-color-light: #28a745;--success-hover-color-light: #22863a;--progress-bar-color-light: #0366d6;--background-color-dark: #0d1117;--surface-color-dark: #161b22;--text-color-dark: #c9d1d9;--subtle-text-color-dark: #8b949e;--border-color-dark: #30363d;--primary-color-dark: #2f81f7;--primary-hover-color-dark: #58a6ff;--danger-color-dark: #f85149;--danger-hover-color-dark: #fa7970;--warning-color-dark: #f0c674;--info-color-dark: #8b949e;--success-color-dark: #238636;--success-hover-color-dark: #2ea043;--progress-bar-color-dark: #2f81f7}body{margin:0;font-family:var(--font-family);transition:background-color .2s,color .2s}body.light{background-color:var(--background-color-light);color:var(--text-color-light)}body.dark{background-color:var(--background-color-dark);color:var(--text-color-dark)}.app-container{display:grid;grid-template-areas:"header header" "sidebar main";grid-template-columns:280px 1fr;grid-template-rows:auto 1fr;height:100vh;gap:1rem;padding:1rem;box-sizing:border-box}.app-header{grid-area:header;display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:8px;background-color:var(--surface-color);border:1px solid var(--border-color)}.app-header h1{font-size:1.25rem;margin:0}.left-pane{grid-area:sidebar;display:flex;flex-direction:column;gap:1rem;background-color:var(--surface-color);padding:1rem;border-radius:8px;border:1px solid var(--border-color);overflow-y:auto}.main-content{grid-area:main;display:grid;grid-template-rows:auto auto 1fr auto;gap:1rem;overflow:hidden}.card{background-color:var(--surface-color);padding:1rem;border-radius:8px;border:1px solid var(--border-color)}.card h2{margin-top:0;font-size:1.1rem;color:var(--subtle-text-color)}.theme-toggle{background:none;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.theme-toggle:hover{background-color:var(--background-color)}.theme-toggle svg{width:20px;height:20px;fill:var(--text-color)}.file-picker-container{display:flex;flex-direction:column;gap:.75rem}.file-picker-container label{display:block;background-color:var(--primary-color);color:#fff;padding:.75rem 1rem;border-radius:6px;text-align:center;cursor:pointer;transition:background-color .2s;font-weight:500}.file-picker-container label:hover{background-color:var(--primary-hover-color)}.file-picker-container label.disabled{background-color:var(--info-color);cursor:not-allowed;opacity:.6}.file-picker-container input[type=file]{display:none}.file-name{font-size:.875rem;color:var(--subtle-text-color);text-align:center;word-break:break-all;min-height:1.2em}.parsing-indicator{font-style:italic;color:var(--primary-color)}.settings-form .form-group{margin-bottom:1rem}.settings-form label{display:block;font-weight:500;margin-bottom:.5rem;font-size:.9rem}.settings-form input{width:100%;padding:.5rem;border-radius:6px;border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color);box-sizing:border-box}.settings-form input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--surface-color)}.settings-form input.input-error{border-color:var(--danger-color)}.settings-form .validation-message{color:var(--danger-color);font-size:.8rem;margin-top:.25rem}.settings-actions{margin-top:.5rem}.controls-bar{display:flex;gap:.75rem;flex-wrap:wrap}.btn{padding:.6rem 1.2rem;border-radius:6px;border:1px solid transparent;cursor:pointer;font-weight:500;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex;align-items:center;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-start{background-color:var(--success-color);color:#fff;border-color:var(--success-color)}.btn-start:hover:not(:disabled){background-color:var(--success-hover-color)}.btn-pause{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-pause:hover:not(:disabled){background-color:var(--primary-hover-color)}.btn-resume{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-resume:hover:not(:disabled){background-color:var(--primary-hover-color)}.btn-primary{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover-color)}.btn-cancel{background-color:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-cancel:hover:not(:disabled){background-color:var(--danger-hover-color)}.btn-export,.btn-clear,.btn-secondary{background-color:transparent;color:var(--text-color);border-color:var(--border-color)}.btn-export:hover:not(:disabled),.btn-clear:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background-color:var(--background-color)}.btn-sample{padding:.5rem 1rem;width:100%;box-sizing:border-box;justify-content:center}.progress-area{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.progress-bar{width:100%;height:10px;background-color:var(--background-color);border-radius:5px;overflow:hidden}.progress-bar-inner{height:100%;background-color:var(--progress-bar-color);transition:width .3s ease-in-out;border-radius:5px}.status-line{font-size:.875rem;color:var(--subtle-text-color);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem}.status-line span{white-space:nowrap}.results-wrapper{display:flex;flex-direction:column;gap:.5rem;overflow:hidden;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.results-toolbar{display:flex;gap:1rem;align-items:center}.results-toolbar .search-input,.results-toolbar select{padding:.5rem;border-radius:6px;border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color)}.results-toolbar .search-input{flex-grow:1}.results-table-container{overflow:auto}.results-table{width:100%;border-collapse:collapse;table-layout:fixed}.results-table th,.results-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color);font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.results-table th{background-color:var(--background-color);font-weight:600;position:sticky;top:0;z-index:1}.results-table .sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none}.results-table .sortable-header:hover{background-color:var(--border-color)}.sort-icon{font-size:.7em;margin-left:.5em;display:inline-block}.results-table tbody tr:last-child td{border-bottom:none}.results-table tbody tr:hover{background-color:var(--background-color)}.status-valid{color:var(--success-color)}.status-invalid{color:var(--danger-color)}.status-risky{color:var(--warning-color)}.status-catchall{color:var(--info-color)}.status-unknown{color:var(--subtle-text-color)}.empty-state{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--subtle-text-color);padding:3rem 1rem;flex-grow:1}.empty-state h3{margin:0 0 .5rem;color:var(--text-color)}.empty-state p{margin:0}.log-console-wrapper{display:flex;flex-direction:column;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.log-console-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.log-console-header h3{margin:0;font-size:1rem;color:var(--subtle-text-color)}.log-console-actions{display:flex;gap:.5rem}.log-console-actions button{font-size:.8rem;padding:.25rem .5rem;background-color:transparent;color:var(--text-color);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.log-console-actions button:hover{background-color:var(--background-color)}.log-console{flex-grow:1;width:100%;box-sizing:border-box;background-color:var(--background-color);color:var(--text-color);border:none;border-radius:6px;padding:.5rem;font-family:Courier New,Courier,monospace;font-size:.8rem;resize:none}.dropdown-container{position:relative;display:inline-block}.dropdown-arrow{display:inline-block;transition:transform .2s}.dropdown-arrow.down:after{content:" ▼";font-size:.7em}.dropdown-arrow.up:after{content:" ▲";font-size:.7em}.dropdown-menu{position:absolute;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:6px;list-style:none;padding:.5rem 0;margin:.25rem 0 0;width:100%;box-shadow:0 4px 12px #0000001a;z-index:10}.dropdown-menu li{padding:.5rem 1rem;cursor:pointer}.dropdown-menu li:hover{background-color:var(--background-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{width:90%;max-width:450px;display:flex;flex-direction:column;gap:1rem}.modal-content h2{color:var(--text-color)}.summary-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.75rem;background-color:var(--background-color);padding:1rem;border-radius:6px}.summary-list li{font-size:.95rem}.summary-list li strong{color:var(--subtle-text-color)}.modal-content button{align-self:flex-end}@media (max-width: 768px){.app-container{grid-template-areas:"header" "sidebar" "main";grid-template-columns:1fr;grid-template-rows:auto auto 1fr;height:auto}}.light{--background-color: var(--background-color-light);--surface-color: var(--surface-color-light);--text-color: var(--text-color-light);--subtle-text-color: var(--subtle-text-color-light);--border-color: var(--border-color-light);--primary-color: var(--primary-color-light);--primary-hover-color: var(--primary-hover-color-light);--danger-color: var(--danger-color-light);--danger-hover-color: var(--danger-hover-color-light);--warning-color: var(--warning-color-light);--info-color: var(--info-color-light);--success-color: var(--success-color-light);--success-hover-color: var(--success-hover-color-light);--progress-bar-color: var(--progress-bar-color-light)}.dark{--background-color: var(--background-color-dark);--surface-color: var(--surface-color-dark);--text-color: var(--text-color-dark);--subtle-text-color: var(--subtle-text-color-dark);--border-color: var(--border-color-dark);--primary-color: var(--primary-color-dark);--primary-hover-color: var(--primary-hover-color-dark);--danger-color: var(--danger-color-dark);--danger-hover-color: var(--danger-hover-color-dark);--warning-color: var(--warning-color-dark);--info-color: var(--info-color-dark);--success-color: var(--success-color-dark);--success-hover-color: var(--success-hover-color-dark);--progress-bar-color: var(--progress-bar-color-dark)}
