/* Lab Operations theme layered over locally hosted Bootstrap 5.3.8. */
:root{--bs-primary:#5254c9;--bs-primary-rgb:82,84,201;--bs-body-color:#25334e;--bs-body-bg:#f2f5fb;--bs-border-color:#dfe5f1;--bs-border-radius:.7rem;--bs-link-color:#464ab5;--ink:#243452;--subtle:#64738c;--teal:#087e83;--violet:#7051c8;--orange:#df5900}
body{font-family:Inter,"Segoe UI",Arial,sans-serif;background:radial-gradient(ellipse at 90% 0,#e8e9fd 0,transparent 36%),#f2f5fb;color:var(--ink);min-height:100vh}
.app-header{padding:16px 3%;background:linear-gradient(110deg,#18284d,#233766 70%,#304878);border:0;gap:20px;box-shadow:0 5px 22px #17244920}
.app-header .brand{margin:0;gap:16px}.logo-tile{background:#fff;border-radius:12px;padding:10px 13px;box-shadow:0 3px 12px #080e2326}.brand-logo{width:126px}
.brand .brand-title{border:0;padding:0;color:#fff;font-size:21px;font-weight:650;letter-spacing:-.4px}.brand-title small{color:#bfcee8;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;margin:5px 0 0}
.app-header nav{gap:22px}.app-header .navbar-nav{gap:8px}.app-header .nav-link{color:#dce5fb;border-radius:9px;padding:11px 17px;font-size:13px;font-weight:600;white-space:nowrap}.app-header .nav-link:hover,.app-header .nav-link.active{background:#ffffff18;color:#fff}.app-header .nav-link.active{box-shadow:inset 0 -3px #fb9854}
.account-chip{display:flex;align-items:center;gap:10px;color:#fff;font-size:13px;line-height:1.2}.account-chip>span{color:#fff}.account-chip small{color:#bbcae4;font-size:10px;margin-top:4px}.account-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#685bc0;font-weight:700;border:2px solid #a39ada}
.app-header .btn-outline-light{background:transparent;border-color:#788bae;color:#fff;padding:9px 14px;font-size:12px}.app-header .navbar-toggler{border-color:#ffffff40;background:#e8edff}.skip-link{position:absolute;z-index:1050;top:6px;left:6px;background:#fff;padding:12px}
main{max-width:1500px;padding:0 34px;margin:30px auto}h1{font-size:32px;font-weight:750;letter-spacing:-.8px}h2{font-weight:700;font-size:19px}h3{font-size:17px;font-weight:650}.eyebrow{color:#7460ae;letter-spacing:1.8px;font-size:10px;font-weight:750}
.dashboard-hero{background:linear-gradient(115deg,#254077,#5c50aa 78%,#8151a4);color:#fff;border-radius:18px;padding:28px 30px;margin-bottom:22px;box-shadow:0 8px 24px #3d3b8f16;position:relative;overflow:hidden}
.dashboard-hero:after{content:"";position:absolute;right:-40px;top:-100px;width:260px;height:260px;border:48px solid #ffffff06;border-radius:50%;pointer-events:none}.dashboard-hero .eyebrow{color:#d3d8ff}.dashboard-hero h1{font-size:34px;color:#fff;margin:4px 0 8px}.dashboard-hero p:not(.eyebrow){color:#e0e6fc;margin:0;font-size:13px}.dashboard-hero #connection-status{background:#ffffff18;color:#fff;border:1px solid #ffffff35;padding:9px 13px;font-size:11px;z-index:1}
.notice{border:1px solid #f1ddbd;background:#fff7e9;border-left:4px solid #e89a2c;color:#76521a;border-radius:10px;font-size:12px;padding:13px 17px;margin-bottom:20px}.notice.success{background:#eaf8f2;border-color:#b5dfce;border-left-color:#169a70;color:#20604b}.notice.error{background:#fff0f0;border-color:#edc2c6;border-left-color:#d95364;color:#972f3d}
.card{border:1px solid #e1e6f1;border-radius:15px;padding:24px;box-shadow:0 4px 18px #28375606;background:#fff;margin-bottom:22px}.card h2{color:#2e3e60}details.card{display:block}details>summary{color:#4a518a;font-size:13px}details[open]>summary{margin-bottom:16px}summary:focus-visible{outline:3px solid #aeb5fa;outline-offset:5px}
.dashboard-tabs{background:#fff;padding:7px;border:1px solid #e0e6f0;border-radius:13px;margin:22px 0;box-shadow:0 3px 12px #2d346608;gap:8px}.dashboard-tabs .nav-link{color:#647089;font-size:13px;border-radius:9px;padding:12px 23px;box-shadow:none}.dashboard-tabs .nav-link[aria-selected=true]{color:#fff;background:linear-gradient(110deg,#5155bc,#7755c4);box-shadow:0 4px 9px #6755bb24}.dashboard-tabs .nav-link:hover{background:#f1effa}.dashboard-tabs .nav-link[aria-selected=true]:hover{background:#5f51b2}
.btn,.button{font-size:13px;font-weight:650;border-radius:8px;padding:10px 17px;transition:background-color .15s,box-shadow .15s;line-height:1.5;text-decoration:none}.btn-primary{background:#5354bc;border-color:#5354bc;color:#fff;box-shadow:0 3px 8px #4c4ab519}.btn-primary:hover,.btn-primary:active{background:#414297!important;border-color:#414297!important}.btn-outline-primary,.button.quiet{background:#f4f3fd;color:#514eb1;border:1px solid #dcd8f2}.btn-outline-primary:hover,.button.quiet:hover{background:#e9e5fa;color:#423b92;border-color:#c5bced}.btn-outline-danger,.danger{background:#fff4f5;border-color:#f0c9cf;color:#b43e52}.btn:disabled{opacity:.5;box-shadow:none}.btn:focus-visible,.button:focus-visible{outline:3px solid #b6b8f8;outline-offset:3px;box-shadow:none}
.form-label{font-size:12px;color:#52617c;font-weight:650;margin-bottom:16px}.form-control,.form-select{font-size:14px;border-color:#d7dfec;border-radius:8px;color:#253651;background-color:#fbfcff;padding:11px 12px;margin-top:7px;line-height:1.45}.form-select{padding-right:38px}.form-control:focus,.form-select:focus{border-color:#9292dd;background-color:white;box-shadow:0 0 0 .2rem #6b63cc1c}.form-check-input{width:1.15em!important;height:1.15em;padding:0;flex-shrink:0;border:1px solid #b9c6da;background-color:#fff;margin:0!important}.form-check-input:checked{background-color:#6354bf;border-color:#6354bf}.check{padding:10px 13px;border-radius:8px;background:#f4f3fb;gap:9px;color:#4d467c;align-items:center}.weekdays{gap:6px}.weekdays .check{background:#f2f6fd}.form-control[type=file]{padding:9px 12px}.form-control[type=file]::file-selector-button{background:#eeebfb;color:#575098;margin-right:15px}small,.muted{color:var(--subtle)}small{font-size:12px}
#shared-filters{border-left:4px solid #6c5ec5;padding:20px 24px}#shared-filters p{font-size:12px;margin-bottom:12px}#shared-filters .heading{align-items:flex-start}#shared-filters h2{font-size:16px}
.count-group h2{font-size:15px;margin:0 0 12px;display:flex;align-items:center;gap:9px}.count-group h2:before{content:"";width:9px;height:9px;border-radius:3px;background:#15979a}.count-results h2:before{background:#8659c8}.count-group{margin-bottom:12px}
.pipeline-metrics{gap:13px}.pipeline-metrics .metric-card{--metric:#137e89;--wash:#edfafa;background:linear-gradient(130deg,#fff,var(--wash));border:1px solid #dce8ed;border-top:3px solid var(--metric);min-height:112px;padding:17px 19px;box-shadow:0 4px 12px #34436606;position:relative;overflow:hidden}.pipeline-metrics .metric-card:after{content:"";position:absolute;width:64px;height:64px;border:15px solid var(--metric);opacity:.045;right:-12px;top:-17px;border-radius:50%}.pipeline-metrics .metric-card:nth-child(2n){--metric:#7750bb;--wash:#f5f0ff;border-top-color:var(--metric)}.pipeline-metrics .metric-card:nth-child(3n){--metric:#197c54;--wash:#ecf9f2;border-top-color:var(--metric)}.pipeline-metrics .metric-card:nth-child(4n){--metric:#2c6bbd;--wash:#eef5ff;border-top-color:var(--metric)}.pipeline-metrics .metric-card:last-child{--metric:#b35b1c;--wash:#fff5e9;border-top-color:var(--metric)}.pipeline-metrics strong{font-size:31px;font-weight:750;color:var(--metric);line-height:1.15}.pipeline-metrics span{font-size:11px;font-weight:550;color:#51617a;line-height:1.5;margin-top:9px}
.workflow{border-top:4px solid #19969a}.workflow .heading{margin-bottom:9px}.workflow .heading h2{margin:0}.workflow>.muted{font-size:12px}.workflow#workflow-results{border-top-color:#8b61c8}.workflow .btn-primary{background:#087d83;border-color:#087d83}.workflow#workflow-results .btn-primary{background:#7652b5;border-color:#7652b5}.workflow .run-detail{padding:12px 15px;background:#f7f8fd;border-radius:9px;color:#627089;font-size:12px}.workflow-toolbar{padding:6px 2px}.workflow-toolbar p{font-size:12px}.pipeline-legend{font-size:11px;margin:6px 0 18px;gap:18px}.stage-list{margin:23px 0 14px}.stage>div{background:#f8faff;padding:12px 10px;border-radius:0 0 9px 9px}.stage strong{font-size:12px;line-height:1.5}.stage-detail{font-size:11px;line-height:1.6}.stage-state{font-size:11px}.stage-number{font-size:9px}.individual-steps{padding-top:13px;margin-top:16px}
.pill{font-size:11px;background:#edf0fa;color:#58628a;font-weight:600;padding:6px 11px}.status-badge{text-transform:capitalize;border:1px solid #e1e4f2}.pill.sent,.pill.signed{background:#e4f5eb;color:#287750}.pill.review{background:#fff0d9;color:#975b16}.pill.failed{background:#fde9ed;color:#ad354d}.pill.running{background:#e8e7fd;color:#5549ae}.pill.completed{background:#e0f5ec;color:#24725b}.pill.blocked,.pill.stopped{background:#fff1db;color:#916018}
.table-wrap{border:1px solid #e4e8f2;border-radius:10px}.table{font-size:12px;margin-bottom:0;--bs-table-hover-bg:#f6f5fd;--bs-table-color:#344562}.table>thead>tr>th{background:#f0f2fb;color:#626d92;font-size:10px;letter-spacing:.55px;text-transform:uppercase;padding:14px 12px;border:0;white-space:nowrap}.table>tbody>tr>td{padding:16px 12px;border-color:#edf0f7}.table .empty{padding:34px;text-align:center;color:#8390a7}.table a{font-weight:650;text-decoration:none}.table a:hover{text-decoration:underline}.pagination{font-size:12px;flex-wrap:wrap}.detail-grid>div{padding:12px;background:#f6f8fd;border-radius:9px}.detail-grid dt{font-size:10px;text-transform:uppercase;color:#7b84a2;letter-spacing:.4px}.detail-grid dd{font-size:13px}pre{padding:16px;background:#f5f7fb;border:1px solid #e1e6f2;border-radius:9px;font-size:12px}
.duo-panel{background:#fff9ef;border-color:#f4dab3;box-shadow:0 5px 18px #d47d1110}.duo-panel h2{color:#a55c19}
.sign-in-page{background:radial-gradient(ellipse at 15% 30%,#e2e4fa,transparent 45%),radial-gradient(ellipse at 90% 75%,#e0f2ef,transparent 50%),#f3f5fb}.login{border:0;border-top:5px solid #ec742c;padding:38px;box-shadow:0 15px 50px #30376a12;border-radius:19px;margin:50px auto}.login-logo{width:205px}.login h1{font-size:27px;color:#2c3656;letter-spacing:-.6px}.login p{font-size:13px}.login .eyebrow{color:#b5652b}.login .btn{width:100%;padding:12px;margin-top:5px;background:linear-gradient(110deg,#5255bd,#7654bd);border:0}.login .form-label{width:100%}
footer{display:flex;align-items:center;gap:9px;max-width:1500px;padding:24px 34px;font-size:11px;color:#8190a7;margin:20px auto 0;border-top:1px solid #e1e6f0}footer>span:last-child{margin-left:auto}.footer-mark{background:#e77429;width:7px;height:7px;border-radius:50%}
@media(min-width:992px){.app-header .navbar-collapse{flex-basis:auto;width:auto;flex-grow:1}.app-header .navbar-toggler{display:none}}
@media(max-width:991px){.app-header{padding:14px 22px;justify-content:space-between}.app-header nav{width:100%;padding-top:14px;align-items:flex-start}.app-header .navbar-nav{width:100%;margin:0!important;flex-direction:row;flex-wrap:wrap}.account-chip{margin:14px 0}.app-header .navbar-collapse:not(.show):not(.collapsing){display:none!important}.app-header .navbar-collapse.show{display:block}.app-header .brand-title{font-size:18px}.brand-title small{font-size:9px}}
@media(max-width:600px){main{padding:0 16px;margin-top:20px}.dashboard-hero{padding:23px 20px;gap:16px}.dashboard-hero h1{font-size:28px}.dashboard-tabs{gap:4px;flex-wrap:nowrap}.dashboard-tabs .nav-link{flex:1;padding:11px 8px;font-size:11px}.app-header{gap:10px;padding:12px 16px}.brand-logo{width:94px}.logo-tile{padding:8px}.brand{gap:10px!important}.brand .brand-title{font-size:16px}.brand-title small{font-size:8px;letter-spacing:.4px}.card{padding:19px}.pipeline-metrics{grid-auto-columns:minmax(145px,1fr)}.login{margin:30px auto;padding:28px 23px}.pagination{gap:10px}footer{padding:20px 16px;flex-wrap:wrap}footer>span:last-child{margin-left:0;flex-basis:100%}.workflow-toolbar{gap:14px}}
@media(prefers-reduced-motion:reduce){.btn,.button{transition:none}}

#duo-panel{max-width:none;margin-bottom:22px}#duo-code:empty::before{content:"—";color:#c09a72;font-weight:400}

.pipeline-metrics .metric-card[data-metric="uploaded"],.pipeline-metrics .metric-card[data-metric="signed"]{--metric:#197c54;--wash:#ecf9f2;border-top-color:var(--metric)}
