:root{--color-bg: #f5f6f8;--color-surface: #ffffff;--color-border: #d8dee5;--color-border-strong: #b6c0cb;--color-text: #1c2733;--color-text-muted: #5a6b7c;--color-text-inverse: #ffffff;--color-primary: #1a5dab;--color-primary-hover: #144a89;--color-primary-soft: #e3edf8;--color-focus-ring: #6ea8e0;--color-neutral: #5a6b7c;--color-neutral-soft: #e7ebef;--color-info: #1d63c4;--color-info-soft: #dcebfc;--color-success: #197a3e;--color-success-soft: #dcf3e4;--color-danger: #b52a2a;--color-danger-soft: #fbe2e2;--color-warning: #96610b;--color-warning-soft: #fdf0d3;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(16 34 51 / .08);--shadow-md: 0 4px 12px rgb(16 34 51 / .12)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg)}h1{font-size:var(--font-size-xl);margin:0 0 var(--space-4)}h2{font-size:var(--font-size-lg);margin:var(--space-5) 0 var(--space-3)}a{color:var(--color-primary)}label{display:block;font-weight:600;font-size:var(--font-size-sm);margin-bottom:var(--space-1)}input[type=text],input[type=email],input[type=password]{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--color-surface)}input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-weight:600;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-ghost{background:transparent;color:var(--color-primary)}.btn-ghost:hover:not(:disabled){background:var(--color-primary-soft)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:var(--space-5);padding:0 var(--space-5);height:56px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-brand{font-weight:700;font-size:var(--font-size-lg);color:var(--color-primary);letter-spacing:.04em}.app-nav{display:flex;gap:var(--space-4)}.app-nav a{text-decoration:none;color:var(--color-text-muted);font-weight:600;padding:var(--space-2) 0;border-bottom:2px solid transparent}.app-nav a:hover{color:var(--color-text)}.app-nav a.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-user{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}.app-user-email{color:var(--color-text-muted);font-size:var(--font-size-sm)}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:var(--space-6) var(--space-5)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.login-card{width:100%;max-width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-6)}.login-card h1{margin-bottom:var(--space-1);color:var(--color-primary)}.login-subtitle{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-sm)}.login-card label{margin-top:var(--space-4)}.login-card .btn{width:100%;justify-content:center;margin-top:var(--space-5)}.login-card .login-forgot{display:flex;width:fit-content;margin:var(--space-2) 0 0 auto;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);font-weight:500}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.page-heading h1{margin:0}.page-actions{display:flex;align-items:center;gap:var(--space-3)}.page-actions .btn{text-decoration:none}.chip{display:inline-block;padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.chip-neutral{background:var(--color-neutral-soft);color:var(--color-neutral)}.chip-info{background:var(--color-info-soft);color:var(--color-info)}.chip-success{background:var(--color-success-soft);color:var(--color-success)}.chip-danger{background:var(--color-danger-soft);color:var(--color-danger)}.chip-warning{background:var(--color-warning-soft);color:var(--color-warning)}.chip-pulse{animation:chip-pulse 1.6s ease-in-out infinite}@keyframes chip-pulse{0%,to{opacity:1}50%{opacity:.55}}.table-wrap{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.data-table th,.data-table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.data-table thead th{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--color-bg)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-primary-soft)}.mono{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);margin-bottom:var(--space-5)}.panel h2{margin-top:0}.panel-success{border-color:var(--color-success);background:var(--color-success-soft)}.panel-danger{border-color:var(--color-danger);background:var(--color-danger-soft)}.action-banner{background:var(--color-warning-soft);border:2px solid var(--color-warning);border-radius:var(--radius-md);color:var(--color-warning);font-size:var(--font-size-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5)}.job-meta{display:flex;flex-wrap:wrap;gap:var(--space-6);margin:0 0 var(--space-5)}.job-meta dt{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted)}.job-meta dd{margin:var(--space-1) 0 0}.progress{height:10px;border-radius:var(--radius-full);background:var(--color-neutral-soft);overflow:hidden;margin:var(--space-3) 0}.progress-fill{height:100%;border-radius:var(--radius-full);background:var(--color-primary);transition:width .6s ease}.progress-indeterminate .progress-fill{width:30%;animation:progress-slide 1.4s ease-in-out infinite}@keyframes progress-slide{0%{margin-left:-30%}to{margin-left:100%}}.result-group{margin-bottom:var(--space-4)}.result-group h3{font-size:var(--font-size-base);margin:var(--space-4) 0 var(--space-2)}.report-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.report-actions .btn{text-decoration:none}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin:var(--space-5) 0}@media(max-width:900px){.upload-grid{grid-template-columns:1fr}}.file-drop{border:2px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-3)}.file-drop-over{border-color:var(--color-primary);background:var(--color-primary-soft)}.file-drop-disabled{opacity:.6}.file-drop p{margin:0 0 var(--space-2)}.upload-success{color:var(--color-success);font-weight:600}.picker{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin:0}.picker legend{font-weight:600;padding:0 var(--space-2)}.picker-list{list-style:none;margin:0 0 var(--space-3);padding:0}.picker-option{display:flex;align-items:center;gap:var(--space-2);font-weight:400;padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.picker-option:hover{background:var(--color-primary-soft)}.suite-list{list-style:none;margin:0 0 var(--space-4);padding:0}.suites-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3)}.suites-toolbar p{margin:0}.suite-row{display:flex;align-items:center;gap:var(--space-1)}.suite-row .suite-option{flex:1}.tree-toggle{border:none;background:none;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-muted);width:28px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.tree-toggle:hover:not(.tree-toggle-spacer){background:var(--color-primary-soft);color:var(--color-text)}.tree-toggle-spacer{cursor:default;display:inline-block}.scenario-list{list-style:none;margin:0 0 var(--space-2);padding:0 0 0 calc(28px + var(--space-4))}.scenario-option{display:flex;align-items:center;gap:var(--space-3);font-weight:400;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.scenario-option:hover{background:var(--color-primary-soft)}.scenario-pinned{cursor:default}.scenario-name{font-size:var(--font-size-sm)}.scenario-pinned-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);white-space:nowrap}.suite-option{display:flex;align-items:center;gap:var(--space-3);font-weight:400;padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer}.suite-option:hover{background:var(--color-primary-soft)}.suite-name{font-weight:600}.suite-count{color:var(--color-text-muted);font-size:var(--font-size-sm)}.chips-input{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.chips-input input{flex:1;min-width:220px;width:auto}.chip-remove{border:none;background:none;cursor:pointer;font-size:inherit;color:inherit;padding:0 0 0 var(--space-1)}.form-footer{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-5)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10223373;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:10}.dialog{width:100%;max-width:440px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-5)}.dialog h2{margin-top:0}.dialog label{margin-top:var(--space-4)}.dialog select{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--color-surface)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:#9a1f1f}.btn-danger-text{color:var(--color-danger)}.btn-danger-text:hover:not(:disabled){background:var(--color-danger-soft)}.cell-actions{text-align:right}.notice{display:inline-block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.user-menu{position:relative}.user-menu-panel{position:absolute;right:0;top:calc(100% + 4px);min-width:200px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;z-index:10}.user-menu-panel button{border:none;background:none;font:inherit;text-align:left;padding:var(--space-3) var(--space-4);cursor:pointer}.user-menu-panel button:hover{background:var(--color-primary-soft)}.toast-region{position:fixed;bottom:var(--space-5);right:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);z-index:20;max-width:420px}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:var(--color-surface);border-left:4px solid var(--color-neutral)}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-danger)}.toast-dismiss{border:none;background:none;font:inherit;cursor:pointer;color:var(--color-text-muted);margin-left:auto;padding:0}.skeleton-group{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0}.skeleton-line{height:1.1em;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-neutral-soft) 25%,var(--color-border) 50%,var(--color-neutral-soft) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-line:nth-child(2n){width:85%}.skeleton-line:nth-child(3n){width:70%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.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}@media(max-width:800px){.app-header{flex-wrap:wrap;height:auto;padding:var(--space-3) var(--space-4);gap:var(--space-3)}.app-user{margin-left:0}.page-heading{flex-wrap:wrap}}.page-status{color:var(--color-text-muted)}.page-center{text-align:center;padding-top:var(--space-7)}.form-error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-sm);overflow-wrap:anywhere}.form-error p{margin:0 0 var(--space-2)}.form-error p:last-child{margin-bottom:0}.form-status{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-sm);overflow-wrap:anywhere}.form-status:empty{margin:0;padding:0}
