@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg: #0d0f12;--color-surface-0: #0d0f12;--color-surface-1: #141720;--color-surface-2: #1b1f2b;--color-surface-3: #222736;--color-border: rgba(255, 255, 255, .07);--color-border-subtle: rgba(255, 255, 255, .04);--color-border-strong: rgba(255, 255, 255, .14);--color-border-focus: #4a90d9;--color-text-primary: #e8eaf0;--color-text-secondary: #8b90a0;--color-text-tertiary: #585e72;--color-text-inverse: #0d0f12;--color-accent: #4a90d9;--color-accent-hover: #5a9fe8;--color-accent-subtle: rgba(74, 144, 217, .12);--color-accent-subtle-hover: rgba(74, 144, 217, .18);--color-success: #3ecf8e;--color-success-subtle: rgba(62, 207, 142, .1);--color-warning: #f5a623;--color-warning-subtle: rgba(245, 166, 35, .1);--color-error: #e05c5c;--color-error-subtle: rgba(224, 92, 92, .1);--color-info: #4a90d9;--color-info-subtle: rgba(74, 144, 217, .1);--color-confidence-high: #3ecf8e;--color-confidence-medium: #f5a623;--color-confidence-low: #8b90a0;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Menlo", monospace;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.3;--line-height-base: 1.5;--line-height-relaxed: 1.7;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--transition-fast: .12s ease;--transition-base: .18s ease;--transition-slow: .26s ease;--max-content-width: 780px;--header-height: 52px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-base);color:var(--color-text-primary);background-color:var(--color-bg);min-height:100vh}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}code,pre,kbd{font-family:var(--font-mono)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-surface-3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.app-root{min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-height);border-bottom:1px solid var(--color-border);background-color:var(--color-surface-0);position:sticky;top:0;z-index:100;display:flex;align-items:center}.app-header__inner{max-width:var(--max-content-width);width:100%;margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between}.app-header__brand{display:flex;align-items:center;gap:var(--space-3)}.app-header__logo{display:flex;align-items:center;gap:var(--space-2);text-decoration:none}.app-header__logo-mark{width:26px;height:26px;background-color:var(--color-accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-header__logo-mark svg{width:15px;height:15px;color:#fff}.app-header__product-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.01em}.app-header__divider{width:1px;height:16px;background:var(--color-border-strong)}.app-header__subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-weight:var(--font-weight-regular)}.app-header__meta{display:flex;align-items:center;gap:var(--space-4)}.app-header__badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 8px;font-family:var(--font-mono)}.page-container{flex:1;max-width:var(--max-content-width);width:100%;margin:0 auto;padding:var(--space-10) var(--space-6) var(--space-16)}.page-intro{margin-bottom:var(--space-10)}.page-intro__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.02em;line-height:var(--line-height-tight);margin-bottom:var(--space-2)}.page-intro__description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-base)}.section{margin-bottom:var(--space-8)}.section__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--space-3)}.file-uploader{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-1);transition:border-color var(--transition-fast),background var(--transition-fast)}.file-uploader--drag-over{border-color:var(--color-accent);background:var(--color-accent-subtle)}.file-uploader__dropzone{padding:var(--space-10) var(--space-8);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);cursor:pointer;text-align:center;position:relative}.file-uploader__dropzone-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-uploader__icon{width:36px;height:36px;color:var(--color-text-tertiary);transition:color var(--transition-fast)}.file-uploader--drag-over .file-uploader__icon{color:var(--color-accent)}.file-uploader__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.file-uploader__subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);line-height:var(--line-height-base)}.file-uploader--compact{padding:0}.file-uploader__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.file-uploader__header-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.file-uploader__header-actions{display:flex;align-items:center;gap:var(--space-3)}.file-list{list-style:none}.file-list__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-subtle);transition:background var(--transition-fast)}.file-list__item:last-child{border-bottom:none}.file-list__item:hover{background:var(--color-surface-2)}.file-list__icon{flex-shrink:0;width:16px;height:16px;color:var(--color-accent)}.file-list__name{flex:1;font-size:var(--font-size-base);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.file-list__size{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono);flex-shrink:0}.file-list__remove{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast);padding:0}.file-list__remove:hover{color:var(--color-error);background:var(--color-error-subtle)}.file-list__remove:focus-visible{outline:2px solid var(--color-border-focus)}.file-list__add-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);position:relative;cursor:pointer;transition:background var(--transition-fast)}.file-list__add-row:hover{background:var(--color-surface-2)}.file-list__add-row-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-list__add-label{font-size:var(--font-size-sm);color:var(--color-accent);font-weight:var(--font-weight-medium)}.field-message{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-top:var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.field-message--error{background:var(--color-error-subtle);color:var(--color-error);border:1px solid rgba(224,92,92,.2)}.field-message--warning{background:var(--color-warning-subtle);color:var(--color-warning);border:1px solid rgba(245,166,35,.2)}.field-message--success{background:var(--color-success-subtle);color:var(--color-success);border:1px solid rgba(62,207,142,.2)}.field-message__icon{flex-shrink:0;width:14px;height:14px;margin-top:1px}.field-message__dismiss{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;opacity:.6;display:flex;align-items:center;padding:0;flex-shrink:0}.field-message__dismiss:hover{opacity:1}.traceback-editor{display:flex;flex-direction:column;gap:var(--space-3)}.traceback-editor__label{display:flex;align-items:baseline;justify-content:space-between}.traceback-editor__label-text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.traceback-editor__label-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.traceback-editor__support{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.traceback-editor__textarea{width:100%;min-height:220px;resize:vertical;font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.65;color:var(--color-text-primary);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);white-space:pre;overflow-wrap:normal;overflow-x:auto;-moz-tab-size:4;tab-size:4;transition:border-color var(--transition-fast);caret-color:var(--color-accent)}.traceback-editor__textarea::placeholder{color:var(--color-text-tertiary);opacity:1}.traceback-editor__textarea:focus{outline:none;border-color:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:1;border:none;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0}.btn:active:not(:disabled){transform:scale(.98)}.btn--sm{height:28px;padding:0 var(--space-3);font-size:var(--font-size-sm)}.btn--md{height:36px;padding:0 var(--space-4)}.btn--lg{height:44px;padding:0 var(--space-6);font-size:var(--font-size-md)}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text-primary)}.btn--danger-ghost{background:transparent;color:var(--color-text-tertiary);border:1px solid transparent}.btn--danger-ghost:hover:not(:disabled){background:var(--color-error-subtle);color:var(--color-error)}.btn:disabled{opacity:.38;cursor:not-allowed}.action-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle)}.action-bar__hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);flex:1}.diagnosis-progress{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-8);margin-top:var(--space-8)}.diagnosis-progress__heading{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-6);letter-spacing:-.01em}.diagnosis-progress__steps{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.progress-step{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm)}.progress-step__indicator{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center}.progress-step--done .progress-step__indicator{color:var(--color-success)}.progress-step--active .progress-step__indicator{color:var(--color-accent)}.progress-step--pending .progress-step__indicator{color:var(--color-text-tertiary)}.progress-step--done .progress-step__label{color:var(--color-text-secondary)}.progress-step--active .progress-step__label{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.progress-step--pending .progress-step__label{color:var(--color-text-tertiary)}@keyframes spin{to{transform:rotate(360deg)}}.spinner-ring{width:14px;height:14px;border:2px solid var(--color-accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.result-section{margin-top:var(--space-10)}.result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.result-header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.02em}.result-header__meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.result-card{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);overflow:hidden}.result-card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between}.result-card__section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary)}.result-card__body{padding:var(--space-5)}.error-summary__type{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-error);margin-bottom:var(--space-2)}.error-summary__message{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.root-cause__text{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-relaxed)}.hypothesis-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.hypothesis-item{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);background:var(--color-surface-2)}.hypothesis-item__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.hypothesis-item__rank{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-mono);color:var(--color-text-tertiary);width:16px;flex-shrink:0}.hypothesis-item__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1}.badge{display:inline-flex;align-items:center;height:20px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.02em;flex-shrink:0}.badge--high{background:var(--color-success-subtle);color:var(--color-success)}.badge--medium{background:var(--color-warning-subtle);color:var(--color-warning)}.badge--low{background:var(--color-surface-3);color:var(--color-confidence-low)}.hypothesis-item__explanation{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-base);margin-bottom:var(--space-3);padding-left:calc(16px + var(--space-3))}.hypothesis-item__evidence{padding-left:calc(16px + var(--space-3));list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}.hypothesis-item__evidence-item{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono);display:flex;align-items:flex-start;gap:var(--space-2)}.hypothesis-item__evidence-item:before{content:"–";flex-shrink:0;color:var(--color-text-tertiary)}.code-block{background:var(--color-surface-0);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow-x:auto}.code-block__filename{padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-1)}.code-block__content{padding:var(--space-4);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.65;white-space:pre;overflow-x:auto;color:var(--color-text-primary)}.diff-line{display:block}.diff-line--added{color:var(--color-success);background:rgba(62,207,142,.07)}.diff-line--removed{color:var(--color-error);background:rgba(224,92,92,.07)}.fix-summary{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-base);margin-bottom:var(--space-4)}.verification-result{display:flex;flex-direction:column;gap:var(--space-4)}.verification-status{display:flex;align-items:center;gap:var(--space-3)}.verification-status__icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;font-weight:var(--font-weight-semibold)}.verification-status__icon--verified{background:var(--color-success-subtle);color:var(--color-success)}.verification-status__icon--failed{background:var(--color-error-subtle);color:var(--color-error)}.verification-status__icon--not_run,.verification-status__icon--not_verified{background:var(--color-surface-3);color:var(--color-text-tertiary)}.verification-status__label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.verification-status__label--verified{color:var(--color-success)}.verification-status__label--failed{color:var(--color-error)}.verification-status__label--not_run,.verification-status__label--not_verified{color:var(--color-text-tertiary)}.verification-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.verification-stat{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border-radius:var(--radius-md)}.verification-stat__value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-family:var(--font-mono);color:var(--color-text-primary)}.verification-stat__label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.verification-output{background:var(--color-surface-0);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.65;white-space:pre;overflow-x:auto;color:var(--color-text-secondary)}.app-error{background:var(--color-surface-1);border:1px solid var(--color-error-subtle);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.app-error__title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-error)}.app-error__message{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-base)}.new-analysis-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-6);gap:var(--space-4)}.new-analysis-bar__text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media (max-width: 640px){.page-container{padding:var(--space-6) var(--space-4) var(--space-10)}.app-header__subtitle,.app-header__divider{display:none}.file-uploader__dropzone{padding:var(--space-8) var(--space-4)}.action-bar{flex-direction:column;align-items:stretch}.action-bar .btn--lg{width:100%}.action-bar__hint{text-align:center}.verification-stats{grid-template-columns:repeat(3,1fr)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
