/* ReportPage.css — in-app Katalon-style test report (orange brand theme) */

.rp-page{padding:var(--space-6) var(--space-8);max-width:1200px;margin:0 auto;box-sizing:border-box;}
@media (max-width:640px){
  .rp-page{padding:var(--space-4);}
  .rp-envcard__body,.rp-summarybar{padding:var(--space-3) var(--space-4);}
}
.rp-loading{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-sm);padding:var(--space-8) 0;}
.rp-loading svg{animation:rp-spin 1s linear infinite;}
@keyframes rp-spin{to{transform:rotate(360deg);}}
.rp-empty{color:var(--text-secondary);font-size:var(--text-sm);padding:var(--space-6) 0;}
.rp-empty-row{text-align:center;color:var(--text-secondary);font-size:var(--text-sm);padding:var(--space-6);}

.rp-top{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:var(--space-4);margin-bottom:var(--space-5);}
.rp-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0;}
.rp-sub{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1);}
.rp-brand{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--brand);}
.rp-brand span{font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--weight-medium);}
.rp-top__actions{display:flex;gap:var(--space-2);flex-wrap:wrap;}
.rp-download-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:34px;padding:0 var(--space-4);background:var(--brand);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;text-decoration:none;}
.rp-download-btn:hover{background:var(--brand-alt,var(--brand));opacity:.92;}
.rp-download-btn--excel{background:var(--success);}
.rp-download-btn--excel:hover{background:var(--success);opacity:.88;}

.rp-titlerow{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);}
.rp-titlerow h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0;}
.rp-live{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--brand);font-size:var(--text-xs);font-weight:var(--weight-semibold);}
.rp-live svg{animation:rp-spin 1s linear infinite;}

.rp-badge{display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-bold);padding:3px 10px;border-radius:var(--radius-sm);letter-spacing:.03em;}
.rp-badge--lg{font-size:var(--text-sm);padding:4px 12px;}
.rp-badge--pass{background:var(--success-bg);color:var(--success);}
.rp-badge--fail{background:var(--error-bg);color:var(--error);}
.rp-badge--running{background:var(--brand-muted);color:var(--brand);}
.rp-badge--muted{background:var(--surface-2);color:var(--text-secondary);}

.rp-envcard{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-5);background:var(--surface);}
.rp-envcard__body{display:flex;flex-wrap:wrap;padding:var(--space-4) var(--space-5);}
.rp-envcell{padding:0 var(--space-5);border-right:1px solid var(--border);}
.rp-envcell--last{border-right:none;margin-left:auto;text-align:right;}
.rp-k{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;}
.rp-v{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-top:2px;}

.rp-envcell--hostos{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:230px;}
.rp-kv-row{display:flex;align-items:baseline;gap:var(--space-4);}
.rp-kv-k{font-size:var(--text-sm);color:var(--text-secondary);min-width:76px;flex-shrink:0;}
.rp-kv-v{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);}

.rp-summarybar{display:flex;align-items:center;flex-wrap:wrap;background:var(--surface-2);border-top:1px solid var(--border);}
.rp-sb-total{padding:var(--space-4) var(--space-5);border-right:1px solid var(--border);}
.rp-num{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);line-height:1;}
.rp-lbl{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;margin-top:2px;}
.rp-sb-counts{display:flex;gap:var(--space-6);padding:var(--space-4) var(--space-5);border-right:1px solid var(--border);}
.rp-sb-count{text-align:center;}
.rp-sb-count .rp-num{font-size:var(--text-lg);}
.rp-sb-count--pass .rp-num{color:var(--success);}
.rp-sb-count--fail .rp-num{color:var(--error);}
.rp-sb-count--err .rp-num{color:var(--error);}
.rp-sb-count--inc .rp-num{color:var(--warning);}
.rp-sb-count--skip .rp-num{color:var(--text-muted);}
.rp-sb-times{display:flex;gap:var(--space-6);padding:var(--space-4) var(--space-5);margin-left:auto;}
.rp-sb-time{text-align:center;}
.rp-sb-time .rp-v{font-family:var(--font-mono);font-weight:var(--weight-medium);}

.rp-summarybar--top{border-top:none;}
.rp-viewlink{color:var(--brand);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-decoration:none;}
.rp-viewlink:hover{text-decoration:underline;}

.rp-failbanner{border:1px solid var(--error-border);background:var(--error-bg);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);}
.rp-failbanner__hdr{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);}
.rp-fr__label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;font-weight:var(--weight-bold);}
.rp-fr__more{color:var(--text-muted);font-weight:var(--weight-regular);font-size:var(--text-xs);}
.rp-ai-badge{display:inline-flex;align-items:center;gap:4px;background:var(--brand-muted);color:var(--brand);font-size:var(--text-xs);font-weight:var(--weight-bold);padding:2px 8px;border-radius:var(--radius-sm);}
.rp-failbanner__body{font-size:var(--text-sm);color:var(--text-primary);}

/* Tables never widen the page itself — they scroll horizontally within
   their own box on narrow viewports instead of clipping/overflowing. */
.rp-table-wrap{width:100%;overflow-x:auto;border-radius:var(--radius-md);}
.rp-table{width:100%;min-width:640px;border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface);}
.rp-table thead th{background:var(--navy);color:var(--text-inverse);text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-semibold);}
.rp-row{cursor:pointer;border-top:1px solid var(--border);transition:background var(--duration-fast);}
.rp-row:hover{background:var(--surface-2);}
.rp-row td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);}
.rp-td-caret{width:24px;color:var(--text-muted);transition:transform var(--duration-fast);}
.rp-row--open .rp-td-caret svg{transform:rotate(90deg);}
.rp-td-caret svg{transition:transform var(--duration-fast);display:inline-block;}
.rp-td-num{color:var(--text-muted);width:32px;}
.rp-td-name{font-weight:var(--weight-semibold);color:var(--text-primary);}
.rp-td-mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;}
.rp-td-c{text-align:center;width:60px;}
.rp-td-result{white-space:nowrap;}
.rp-ri{display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-bold);margin-right:var(--space-2);}
.rp-ri--pass{color:var(--success);}
.rp-ri--fail{color:var(--error);}
.rp-ri--err{color:var(--error);}
.rp-ri--inc{color:var(--warning);}
.rp-ri--skip{color:var(--text-muted);}

.rp-detail-row td{background:var(--surface-2);padding:var(--space-5) var(--space-6);border-top:1px solid var(--border);}
.rp-casesingle{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);background:var(--surface-2);}
.rp-detail{display:flex;flex-direction:column;gap:var(--space-3);}
.rp-detail__row{display:flex;align-items:center;gap:var(--space-3);}
.rp-detail__k{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;font-weight:var(--weight-bold);min-width:90px;}
.rp-detail__v{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);}
.rp-status--passed{color:var(--success);}
.rp-status--failed,.rp-status--error{color:var(--error);}
.rp-status--running{color:var(--brand);}

.rp-ai{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);}
.rp-ai--none{color:var(--text-muted);font-size:var(--text-xs);}
.rp-ai__row{display:flex;gap:var(--space-2);font-size:var(--text-sm);}
.rp-ai__k{font-weight:var(--weight-bold);color:var(--text-primary);min-width:130px;}
.rp-ai__v{color:var(--text-secondary);}
.rp-ai__root{background:var(--error-bg);color:var(--error);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);}

.rp-steps{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2);}
.rp-nosteps{font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-4);text-align:center;}
.rp-step{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:var(--surface);}
.rp-step--passed .rp-step__hdr{border-left:4px solid var(--success);}
.rp-step--failed .rp-step__hdr{border-left:4px solid var(--error);}
.rp-step__hdr{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);flex-wrap:wrap;}
.rp-step__num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);min-width:28px;}
.rp-step__icon{font-size:var(--text-sm);}
.rp-step--passed .rp-step__icon{color:var(--success);}
.rp-step--failed .rp-step__icon{color:var(--error);}
.rp-step__type{background:var(--info-bg);color:var(--info);padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);}
.rp-step__desc{font-size:var(--text-xs);color:var(--text-secondary);flex:1;}
.rp-step__status{margin-left:auto;font-size:var(--text-xs);font-weight:var(--weight-bold);}
.rp-step--passed .rp-step__status{color:var(--success);}
.rp-step--failed .rp-step__status{color:var(--error);}
.rp-step__msg{font-size:var(--text-xs);color:var(--error);padding:0 var(--space-3) var(--space-2);}
.rp-step__body{background:var(--surface-2);text-align:center;padding:var(--space-3);}
.rp-step__body img{max-width:100%;max-height:420px;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);}
.rp-step__body--none{color:var(--text-muted);font-size:var(--text-xs);padding:var(--space-4);}
