@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{--bg:#f5f3ef;--bg-warm:#edeae4;--bg-surface:#fafaf8;--bg-elevated:#f0eee9;--bg-hover:#e7e4dd;--bg-input:#fff;--border:#e7e5e4;--border-hover:#d6d3d1;--border-active:#a8a29e;--text-primary:#1c1917;--text-secondary:#57534e;--text-muted:#78716c;--text-ghost:#a8a29e;--accent:#292524;--accent-warm:#b45309;--accent-amber:#b45309;--accent-green:#15803d;--accent-red:#b91c1c;--accent-blue:#1d4ed8;--accent-purple:#4338ca;--accent-cyan:#0e7490;--gradient-text:linear-gradient(90deg, #1c1917 0%, #7c2d12 60%, #b45309 100%);--gradient-warm:linear-gradient(135deg, #92400e 0%, #b45309 50%, #d97706 100%);--shadow-sm:0 1px 2px #1c19170a;--shadow:0 4px 24px #1c191714;--shadow-lg:0 16px 48px #1c19171a;--radius-sm:10px;--radius:14px;--radius-lg:18px;--radius-xl:22px}*{box-sizing:border-box}body{min-width:1280px;color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:DM Sans,PingFang SC,-apple-system,sans-serif}body:before{pointer-events:none;content:"";z-index:0;background:radial-gradient(70% 35% at 50% -5%,#d977060f,#0000 55%),radial-gradient(50% 25% at 75% 5%,#b453090a,#0000 45%);position:fixed;inset:0}button,a{font:inherit}.app-shell{z-index:1;grid-template-columns:240px 1fr;min-height:100vh;display:grid;position:relative}.sidebar{height:100vh;color:var(--text-secondary);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;padding:28px 16px;display:flex;position:sticky;top:0}.brand-mark{align-items:center;gap:10px;margin-bottom:40px;padding:0 8px;display:flex}.brand-orb{background:0 0;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.brand-mark strong{letter-spacing:-.02em;color:var(--text-primary);font-size:15px;font-weight:600;display:block}.brand-mark span{color:var(--text-muted);font-size:11px;font-weight:400;display:block}.sidebar nav{gap:2px;display:grid}.sidebar nav a{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar nav a:hover{color:var(--text-primary);background:var(--bg-elevated)}.sidebar nav a.active{color:var(--text-primary);background:var(--bg-hover)}.sidebar-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);margin-top:auto;padding:16px}.sidebar-panel strong{color:var(--text-primary);margin-top:8px;font-size:13px;font-weight:600;display:block}.sidebar-panel p{color:var(--text-muted);margin:6px 0 0;font-size:12px;line-height:1.55}.workspace{padding:40px 48px 60px;position:relative}.hero{text-align:center;border-radius:var(--radius-xl);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow);flex-direction:column;align-items:center;margin-bottom:8px;padding:56px 40px 40px;display:flex;position:relative;overflow:hidden}.eyebrow,.section-head span,.panel-title span{color:var(--accent-warm);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.hero h1{letter-spacing:-.02em;max-width:840px;color:var(--text-primary);margin:24px 0 18px;font-family:Noto Serif SC,DM Sans,serif;font-size:48px;font-weight:600;line-height:1.15}.gradient-text{background:var(--gradient-text);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero p{max-width:560px;color:var(--text-muted);margin:0;font-size:17px;font-weight:400;line-height:1.7}.hero-actions{gap:12px;margin-top:32px;display:flex}.primary-button,.ghost-button,.text-button{cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.primary-button{color:#fff;background:var(--accent);border-radius:999px;padding:11px 20px}.primary-button:hover{transform:translateY(-1px);box-shadow:0 4px 16px #1c19171f}.primary-button.compact{color:#fff;background:var(--accent);padding:8px 14px}.ghost-button{color:var(--text-primary);border:1px solid var(--border-hover);background:0 0;border-radius:999px;padding:11px 20px;font-weight:500}.ghost-button:hover{border-color:var(--border-active);background:var(--bg-elevated)}.text-button{color:var(--accent);background:0 0;border:1px solid #0000;border-radius:999px;padding:8px 14px;font-weight:500}.text-button:hover{border-color:var(--border);background:var(--bg-elevated)}.hero-visual{width:100%;height:180px;margin-top:40px;position:relative}.orbit{border:1px solid var(--border-hover);border-radius:999px;animation:30s linear infinite spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit.one{width:140px;height:140px}.orbit.two{width:100px;height:100px;animation-duration:20s;animation-direction:reverse}.radar-card{text-align:center;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);place-items:center;width:120px;height:120px;padding:14px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.radar-card strong{color:var(--text-primary);font-size:28px;font-weight:600;line-height:1}.radar-card span,.floating-chip{color:var(--text-muted);font-size:11px;font-weight:500}.floating-chip{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:500;position:absolute}.chip-a{top:20px;left:50%;transform:translate(-120px)}.chip-b{top:20px;right:50%;transform:translate(120px)}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin:32px 0 40px;display:grid}.metric-card,.target-card,.panel{border:1px solid var(--border);background:var(--bg-surface);transition:all .25s}.metric-card:hover,.target-card:hover,.panel:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.metric-card{border-radius:var(--radius);min-height:130px;padding:20px;position:relative;overflow:hidden}.metric-icon{width:32px;height:32px;color:var(--accent-warm);background:var(--bg-elevated);border-radius:8px;place-items:center;display:grid}.metric-card span{color:var(--text-muted);margin-top:16px;font-size:13px;font-weight:500;display:block}.metric-card strong{letter-spacing:-.03em;color:var(--text-primary);margin-top:4px;font-size:30px;font-weight:600;display:block}.metric-card small{color:var(--text-ghost);font-size:12px;font-weight:400}.section-head,.panel-title{justify-content:space-between;align-items:center;display:flex}.section-head{margin-bottom:20px}.section-head span,.panel-title span{color:var(--accent-warm)}.section-head h2,.panel-title h2{letter-spacing:-.02em;color:var(--text-primary);margin:6px 0 0;font-family:Noto Serif SC,DM Sans,serif;font-size:22px;font-weight:600}.target-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.target-card{border-radius:var(--radius);padding:22px;position:relative;overflow:hidden}.target-card:before{content:"";height:3px;position:absolute;inset:0 0 auto}.target-card.blue:before{background:var(--accent-blue)}.target-card.violet:before{background:var(--accent)}.target-card.cyan:before{background:var(--accent-cyan)}.target-topline,.target-type{align-items:center;display:flex}.target-topline{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;font-size:11px;font-weight:500}.target-type{color:var(--text-secondary);gap:6px}.target-card h3{color:var(--text-primary);margin:16px 0 4px;font-size:18px;font-weight:600}.target-card p{color:var(--text-muted);margin:0;font-size:13px}.target-body{align-items:center;gap:18px;margin-top:18px;display:flex}.score-ring{background:conic-gradient(var(--accent) var(--score), var(--border) 0);border-radius:999px;flex-shrink:0;place-items:center;width:88px;height:88px;display:grid}.score-ring div{background:var(--bg-surface);border-radius:999px;place-items:center;width:68px;height:68px;display:grid}.score-ring strong{color:var(--text-primary);font-size:20px;font-weight:600;line-height:1}.score-ring span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:600}.target-stats{flex:1;gap:8px;display:grid}.target-stats span{color:var(--text-muted);border-bottom:1px solid var(--border);justify-content:space-between;padding-bottom:6px;font-size:13px;display:flex}.target-stats strong{color:var(--text-primary);font-weight:500}.content-grid{grid-template-columns:1.45fr .9fr;gap:20px;margin-bottom:20px;display:grid}.bottom-grid{grid-template-columns:1fr 1fr}.panel{border-radius:var(--radius);padding:20px}.timeline{grid-template-columns:repeat(5,1fr);gap:10px;margin:24px 0;display:grid}.timeline-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);min-height:100px;padding:14px;transition:all .2s;position:relative}.timeline-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.timeline-item span{color:var(--accent-warm);font-size:13px;font-weight:600}.timeline-item p{color:var(--text-secondary);margin:16px 0 0;font-size:13px;font-weight:500;line-height:1.45}.task-table{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.table-row{color:var(--text-secondary);border-bottom:1px solid var(--border);grid-template-columns:1.35fr 1.15fr .7fr .7fr .45fr;align-items:center;gap:12px;padding:12px 16px;transition:background .15s;display:grid}.table-row:hover{background:var(--bg-elevated)}.table-row:last-child{border-bottom:0}.table-row strong{color:var(--text-primary);font-size:14px;font-weight:500}.table-head{color:var(--text-ghost);letter-spacing:.06em;text-transform:uppercase;background:var(--bg-elevated);font-size:11px;font-weight:600}.table-head:hover{background:var(--bg-elevated)}.status,.severity{letter-spacing:.02em;border-radius:999px;width:fit-content;padding:4px 10px;font-size:11px;font-weight:600}.status.completed{color:var(--accent-green);background:#15803d0f;border:1px solid #15803d1f}.status.running{color:var(--accent-blue);background:#1d4ed80f;border:1px solid #1d4ed81f;animation:2s ease-in-out infinite status-pulse}.status.pending{color:var(--accent-amber);background:#b453090f;border:1px solid #b453091f}.status.failed{color:var(--accent-red);background:#b91c1c0f;border:1px solid #b91c1c1f}.testset-list,.failure-list{gap:10px;margin-top:20px;display:grid}.testset-item,.failure-item,.report-card{border:1px solid var(--border);background:var(--bg-surface);transition:all .2s}.testset-item:hover,.failure-item:hover,.report-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.testset-item{border-radius:var(--radius-sm);grid-template-columns:1fr auto;align-items:center;gap:6px 12px;padding:14px;display:grid}.testset-item span,.failure-item p,.report-card p{color:var(--text-muted)}.testset-item span{margin-top:2px;font-size:13px;font-weight:400;display:block}.testset-item b{color:var(--text-primary);font-size:20px;font-weight:600}.testset-item small{color:var(--text-ghost);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;font-size:11px;font-weight:500}.failure-item{border-radius:var(--radius-sm);align-items:center;gap:14px;padding:14px;display:flex}.failure-item p{margin:4px 0 0;font-size:13px;line-height:1.5}.severity.high{color:var(--accent-red);background:#b91c1c0f;border:1px solid #b91c1c1f}.severity.medium{color:var(--accent-amber);background:#b453090f;border:1px solid #b453091f}.severity.low{color:var(--accent-blue);background:#1d4ed80f;border:1px solid #1d4ed81f}.report-panel{background:var(--bg-surface);border:1px solid var(--border)}.report-card{border-radius:var(--radius-sm);margin-top:20px;padding:22px}.report-card span{color:var(--accent-warm);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.report-card strong{color:var(--text-primary);margin-top:8px;font-size:20px;font-weight:600;line-height:1.3;display:block}.report-card p{color:var(--text-secondary);font-size:14px;line-height:1.7}@keyframes spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header span{color:var(--accent-warm);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}.page-header h2{letter-spacing:-.02em;color:var(--text-primary);margin:6px 0 0;font-family:Noto Serif SC,DM Sans,serif;font-size:22px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;display:flex}.search-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);flex:1;align-items:center;gap:10px;min-width:280px;padding:10px 14px;transition:border-color .2s;display:flex}.search-box:focus-within{border-color:var(--border-active)}.search-box svg{color:var(--text-ghost);flex-shrink:0}.search-box input{color:var(--text-primary);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:14px}.search-box input::placeholder{color:var(--text-ghost)}.filter-group{align-items:center;gap:6px;display:flex}.filter-group button{color:var(--text-muted);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .2s}.filter-group button.active,.filter-group button:hover{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--border-hover)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1c19174d;place-items:center;animation:.2s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);width:480px;max-width:90vw;max-height:90vh;box-shadow:var(--shadow-lg);padding:24px;animation:.25s cubic-bezier(.4,0,.2,1) fade-up;overflow:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h3{color:var(--text-primary);margin:0;font-family:Noto Serif SC,DM Sans,serif;font-size:18px;font-weight:600}.modal-header button{border:1px solid var(--border);background:var(--bg-elevated);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:8px;place-items:center;transition:all .2s;display:grid}.modal-header button:hover{border-color:var(--border-hover);background:var(--bg-hover);color:var(--text-primary)}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-grid label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{color:var(--text-primary);font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--border-active)}.form-grid input::placeholder,.form-grid textarea::placeholder{color:var(--text-ghost)}.form-grid select{color:var(--text-primary);cursor:pointer}.form-grid select option{background:var(--bg-surface);color:var(--text-primary)}.form-grid textarea{resize:vertical;min-height:80px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.icon-button{border:1px solid var(--border);background:var(--bg-surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;transition:all .2s;display:grid}.icon-button:hover{border-color:var(--border-hover);background:var(--bg-elevated);color:var(--text-secondary)}.icon-button.danger{color:var(--accent-red);background:#b91c1c0a;border-color:#b91c1c26}.icon-button.danger:hover{background:#b91c1c14;border-color:#b91c1c40}.icon-button.primary{color:#fff;background:var(--accent);border-color:#0000}.icon-button.primary:hover{box-shadow:0 4px 14px #1c191726}.icon-button.success{color:var(--accent-green);background:#15803d0a;border-color:#15803d26}.icon-button.success:hover{background:#15803d14;border-color:#15803d40}.target-actions{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.row-actions{gap:6px;display:flex}.status-completed{width:fit-content;color:var(--accent-green);letter-spacing:.02em;background:#15803d0f;border:1px solid #15803d1f;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.status-running{width:fit-content;color:var(--accent-blue);letter-spacing:.02em;background:#1d4ed80f;border:1px solid #1d4ed81f;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;animation:2s ease-in-out infinite status-pulse}.status-pending{width:fit-content;color:var(--accent-amber);letter-spacing:.02em;background:#b453090f;border:1px solid #b453091f;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.status-failed{width:fit-content;color:var(--accent-red);letter-spacing:.02em;background:#b91c1c0f;border:1px solid #b91c1c1f;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.testset-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.testset-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);padding:20px;transition:all .25s}.testset-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.testset-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.testset-header>div{align-items:center;gap:10px;display:flex}.testset-header strong{color:var(--text-primary);font-size:16px;font-weight:600}.tag{color:var(--text-secondary);letter-spacing:.02em;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.testset-card>p{color:var(--text-muted);margin:0 0 12px;font-size:14px;line-height:1.6}.testset-meta{color:var(--text-ghost);gap:14px;margin-bottom:12px;font-size:13px;font-weight:400;display:flex}.case-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);margin-top:12px;padding:12px}.case-item{border-bottom:1px solid var(--border);color:var(--text-secondary);padding:8px 0;font-size:13px;line-height:1.6}.case-item:last-child{border-bottom:0}.case-difficulty{color:#fff;letter-spacing:.04em;background:var(--accent-warm);border-radius:6px;margin-right:8px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.reports-grid{gap:16px;display:grid}.reports-grid .report-card{border:1px solid var(--border);background:var(--bg-surface);margin-top:0}.report-stats{color:var(--text-ghost);gap:14px;margin:12px 0;font-size:13px;font-weight:400;display:flex}.report-stats span{align-items:center;gap:6px;display:flex}.report-targets{color:var(--text-secondary);margin:12px 0;font-size:13px}.report-actions{align-items:center;gap:10px;margin-top:14px;display:flex}.report-detail{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.detail-section h4{color:var(--accent-warm);letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.detail-section p{color:var(--text-secondary);margin:0 0 6px;font-size:13px;line-height:1.6}.failure-content{flex:1}.failure-content p{color:var(--text-muted);margin:4px 0 0;font-size:13px;line-height:1.5}.failure-meta{color:var(--text-ghost);gap:14px;margin-top:6px;font-size:12px;font-weight:400;display:flex}.failure-actions{gap:6px;display:flex}.failure-item.reviewed{opacity:.5}.sidebar nav a{text-decoration:none}button:disabled{opacity:.35;cursor:not-allowed}button:disabled:hover{box-shadow:none;transform:none}.task-table .table-row{grid-template-columns:1.3fr 1fr 1fr .7fr .7fr .5fr .6fr}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-ghost);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{color:var(--text-primary);background:#b453092e}
