:root{font-family:Inter,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f1f5f9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#f1f5f9}*{box-sizing:border-box}@font-face{font-family:Montserrat Light;src:url(/fonts/Montserrat-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Nunito Sans;src:url(/fonts/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}#root{margin:0 auto;padding:2rem;max-width:1200px}:root{--bcl-blue: #1f78b4;--bcl-blue-dark: #155a8a;--bcl-blue-soft: #e6f2fb;--bcl-blue-very-soft: #f3f9fe;--bcl-gray: #64748b}body{font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif;font-weight:300}.login-card{max-width:380px;margin:4rem auto;padding:2rem;border-radius:16px;background:#fff;box-shadow:0 12px 40px #0f172a1f}.login-card h2{margin:0 0 .4rem}.login-card form{display:grid;gap:.6rem;margin-top:1rem}.dashboard header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.app-header{padding:1rem 1.25rem;background:#fff;border-radius:0;box-shadow:0 8px 30px #0f172a14;gap:1.5rem}.header-brand{display:flex;align-items:center;gap:1rem;flex:1}.header-brand>div{flex:1;text-align:center}.header-title{text-align:center;font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif;color:var(--bcl-blue);letter-spacing:.08em}.header-accent{color:#9aa0a6}.logo-bcl{height:52px;width:auto}.header-actions{display:flex;flex-wrap:wrap;gap:.6rem}.header-user{display:flex;align-items:center;gap:1rem;padding:.6rem .9rem;background:var(--bcl-blue-very-soft);border-radius:0;border:1px solid #e3e3e3}.user-label{font-size:.75rem;color:var(--bcl-gray);text-transform:uppercase;letter-spacing:.08em}.user-row{display:flex;align-items:center;gap:.6rem}.user-name{font-weight:700}.user-bank-logo{height:26px;width:26px;border-radius:0;border:1px solid rgba(148,163,184,.4);background:#fff;object-fit:contain;display:block}.signout-button{background:#fff;color:#0f172a;border:1px solid #d1d5db;padding:.35rem .7rem}.signout-button:hover{background:#f3f4f6}.header-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.nav-role-group{display:flex;align-items:center;gap:.35rem;padding:0 .75rem;border-right:1px solid rgba(0,0,0,.12)}.nav-role-group:last-of-type{border-right:none;padding-right:0}.nav-role-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--bcl-gray, #64748b);margin-right:.25rem}.header-nav .nav-link{padding:.35rem .6rem;font-size:.85rem}.header-nav .nav-link.active{background:var(--bcl-blue, #1e40af);color:#fff;border-color:var(--bcl-blue, #1e40af)}.role-banner{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;min-height:52px;border-bottom:3px solid rgba(0,0,0,.12)}.role-banner-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0}.role-banner-icon svg{width:32px;height:32px}.role-banner-text{display:flex;flex-direction:column;gap:.1rem}.role-banner-label{font-size:1.2rem;letter-spacing:.02em}.role-banner-sub{font-size:.75rem;opacity:.9}.role-banner--agent{background:linear-gradient(135deg,#dbeafe,#e0e7ff);border-bottom-color:var(--bcl-blue, #1e40af);color:#1e3a8a}.role-banner--owner{background:linear-gradient(135deg,#ccfbf1,#d1fae5);border-bottom-color:#0d9488;color:#0f766e}.role-banner--dqs{background:linear-gradient(135deg,#fce7f3,#f5d0fe);border-bottom-color:#a21caf;color:#86198f}.role-banner--admin{background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom-color:#b45309;color:#92400e}.role-banner-img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.7);box-shadow:0 2px 8px #0000001f;flex-shrink:0}.submit-button{display:inline-flex;align-items:center;gap:.5rem;background:#c2a46b;color:#fff;border-radius:0;padding:0 .8rem 0 2.2rem;font-weight:600;height:2rem;position:relative;text-transform:uppercase;letter-spacing:.06em}.submit-button:hover{background:#b39259}.btn-icon{display:inline-flex;align-items:center;justify-content:center;height:100%;width:2rem;position:absolute;left:0;top:0;background:#8a6b34;font-size:1rem;line-height:1}.panel-toggle-button,.panel-action-button{display:inline-flex;align-items:center;gap:.5rem;position:relative;height:2rem;padding:0 .9rem 0 2.2rem;border-radius:0;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600;border:0}.panel-toggle-button{background:#c2a46b;color:#fff}.panel-toggle-button .btn-icon{background:#8a6b34}.panel-toggle-button.open{background:#b46a6a}.panel-toggle-button.open .btn-icon{background:#7e1b2f}.panel-action-button{background:#a9c5d9;color:#fff}.panel-action-button .btn-icon{background:#6ea4bf}.panel-action-button-secondary{background:#c2a46b}.panel-action-button-secondary .btn-icon{background:#8a6b34}.accordion-panel{max-height:0;overflow:hidden;opacity:0;transform:translateY(-6px);transition:max-height .3s ease,opacity .25s ease,transform .25s ease}.accordion-panel.open{max-height:1000px;opacity:1;transform:translateY(0)}.accordion-inner{padding-top:.7rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:1.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-1.4rem -1.5rem 1.1rem;padding:0 1rem 0 2.7rem;min-height:2.2rem;height:2.2rem;background:var(--header-bg, #a9c5d9);border-radius:0;position:relative;overflow:hidden}.card-title{font-size:1rem;letter-spacing:.2px;font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif;color:#fff;text-transform:uppercase;line-height:1}.card-header:before{content:"";position:absolute;left:0;top:0;height:100%;width:2.2rem;background:var(--header-accent, #6ea4bf)}.card-header--blue{--header-bg: #a9c5d9;--header-accent: #6ea4bf}.card-header--red{--header-bg: #b46a6a;--header-accent: #7e1b2f}.card-header--gold{--header-bg: #c2a46b;--header-accent: #8a6b34}.card-header--green{--header-bg: #7dba9a;--header-accent: #3d7d5c}.card-header .submit-button{background:#ffffff26;border:1px solid rgba(255,255,255,.5);color:#fff;height:1.6rem;padding:0 .6rem 0 2rem;font-size:.8rem}.card-header .submit-button:hover{background:#ffffff40}.card-header .btn-icon{height:100%;width:1.6rem;font-size:.85rem;background:#7e1b2fcc}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.calendar-card{border:1px solid #e2e8f0;border-radius:14px;padding:1rem;background:#f8fafc;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.calendar-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a1a}.calendar-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.calendar-period{font-weight:700;font-size:1.05rem}.calendar-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.85rem;color:#4b5563}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem}.calendar-link{margin-top:.7rem;font-size:.85rem;color:var(--bcl-blue);font-weight:600}.history-schedule-grid{display:flex;gap:1rem;overflow-x:auto;padding:0 18vw .5rem;scroll-snap-type:x mandatory}.history-flow{display:flex;flex-direction:column;gap:1.5rem}.agent-insights{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:.8rem;margin-bottom:.8rem}.agent-insight-card{border:1px solid #d7e0ea;background:#fff;padding:.65rem .8rem}.agent-insight-card.is-alert{border-color:#d9a1a1;background:#fdf2f2}.agent-insight-card.is-ok{border-color:#b8d8c8;background:#f3fbf6}.agent-insight-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.agent-insight-value{margin-top:.2rem;font-size:.95rem;color:#0f172a}.history-detail-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr);gap:1.5rem}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:50}.modal{background:#fff;border-radius:0;padding:1.5rem;width:min(640px,100%);box-shadow:0 20px 50px #0f172a33}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-1.5rem -1.5rem 1.2rem;padding:0 1rem 0 2.7rem;min-height:2.2rem;height:2.2rem;background:#a9c5d9;position:relative;overflow:hidden}.modal-header:before{content:"";position:absolute;left:0;top:0;height:100%;width:2.2rem;background:#6ea4bf}.modal-header h3{color:#fff;text-transform:uppercase;font-size:1rem;letter-spacing:.2px;font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif}.history-schedule-card{border:1px solid #d7d7d7;border-radius:0;padding:.9rem 1rem .8rem;background:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;min-width:240px;scroll-snap-align:center}.history-schedule-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14}.history-schedule-card.active{border-color:#6ea4bf;background:#edf4f8}.history-schedule-card.priority-card{transform:scale(1.05);z-index:2;box-shadow:0 12px 28px #0f172a24}.history-schedule-card.late-card{border-color:#c87f7f;background:#fff6f6}.history-schedule-card:before{content:"";position:absolute;top:0;left:0;height:3px;width:100%;background:#6ea4bf}.history-schedule-card.late-card:before{background:#b84d4d}.history-schedule-title{display:flex;flex-direction:column;gap:.2rem;padding-right:2.8rem}.bank-logo-square{position:absolute;top:10px;right:10px;height:28px;width:28px;border-radius:0;border:1px solid rgba(148,163,184,.5);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}.bank-logo-square img{height:70%;width:70%;object-fit:contain}.history-schedule-title strong{font-size:1rem;letter-spacing:.02em}.history-schedule-meta{display:flex;justify-content:space-between;align-items:center;margin-top:.6rem;padding-top:.4rem;border-top:1px solid #e2e2e2;color:var(--bcl-gray);font-size:.85rem}.deadline-signal{margin-top:.45rem;display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;border:1px solid #d8e3ed;padding:.2rem .45rem;background:#f8fbfe;color:#3a556f}.deadline-signal.next{border-color:#b9d7ef;background:#eaf4fc;color:#225176}.deadline-signal.late{border-color:#e0b1b1;background:#fdeeee;color:#922a2a}.deadline-icon{font-size:.9rem;line-height:1}.small-button{margin-top:.8rem;font-size:.8rem;padding:.4rem .7rem}.card{background:#f2f2f2;border-radius:0;padding:1.4rem 1.5rem;border:1px solid #e3e3e3;box-shadow:0 10px 28px #0f172a0f;position:relative}.card:before{display:none}.table{display:grid;gap:.8rem}.row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc}.row.selectable{cursor:pointer}.row.selectable.active{border-color:var(--bcl-blue);background:var(--bcl-blue-soft)}.history-grid{display:grid;gap:1rem}.history-filter{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0;border-radius:0;background:transparent;margin-bottom:.6rem;font-weight:600}.inline-icon{display:inline-flex;align-items:center;justify-content:center;margin-right:.4rem;font-size:.95rem;vertical-align:middle}.history-card{border:1px solid #e0e0e0;border-radius:0;padding:.55rem .75rem;background:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif;font-weight:300;font-size:.85rem;line-height:1.2}.history-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a1a}.history-card.active{border-color:#6ea4bf;background:#edf4f8}.history-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-header strong{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;letter-spacing:.02em}.history-meta{display:flex;gap:1rem;margin-top:.15rem;color:var(--bcl-gray);font-size:.85rem;text-transform:uppercase}.history-summary{display:flex;gap:.5rem;margin-top:.25rem;flex-wrap:wrap}.small{font-size:.75rem;word-break:break-all}label{font-size:.85rem;font-weight:600;color:#334155}input,select,button{padding:.6rem .8rem;border-radius:10px;border:1px solid #cfe3f4;font-size:.95rem}button{background:var(--bcl-blue);color:#fff;border:none;cursor:pointer}button.secondary{background:var(--bcl-blue-very-soft);color:#0f172a}.cta-group{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.form-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.8rem}.form-actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.badge{padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#dbeaf7;color:#0f172a}.badge-pass{background:#e6f4ee;color:#1f6f52}.badge-warn{background:#f8f1e6;color:#9a6a1f}.badge-fail{background:#f7e7e7;color:#9b3a3a}.muted{color:var(--bcl-gray);font-size:.85rem}.error{color:#dc2626;font-weight:600;margin-top:.5rem}.issue-card{border:1px solid #e0e0e0;border-radius:0;padding:.5rem .7rem;margin-top:.4rem;background:#fff;font-size:.85rem;line-height:1.2}.issue-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.issue-body{margin-top:.2rem}.issue-card-footer{margin-top:.6rem;padding-top:.5rem;border-top:1px solid #e2e8f0}.link-button{background:none;border:none;padding:0;font-size:.8rem;color:var(--bcl-blue, #1e40af);cursor:pointer;text-decoration:underline}.link-button:hover{color:#1e3a8a}.summary{display:flex;gap:.6rem;align-items:center;margin-bottom:.8rem}.list{margin:0;padding-left:1.2rem;color:#475569}.owner-calendar{margin-top:.6rem}.owner-calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.owner-calendar-weekday{text-align:center;font-weight:600;color:#4b5563;font-size:.8rem}.owner-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.owner-calendar-cell{min-height:110px;border:1px solid #dbe3eb;background:#fff;padding:.35rem;border-radius:0}.owner-calendar-cell.empty{background:#f8fafc}.owner-calendar-day{font-size:.8rem;font-weight:700;margin-bottom:.2rem}.owner-calendar-event{font-size:.72rem;padding:.18rem .3rem;background:#e6f2fb;color:#1f4f75;margin-bottom:.2rem;border:1px solid #cfe3f4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-multi-field{grid-column:span 2}.owner-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.4rem;border:1px solid #d7e0ea;padding:.45rem;background:#fff}.owner-checkbox-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:#334155}.compliance-controls{display:flex;align-items:center;gap:.75rem;margin-bottom:1.2rem}.compliance-period-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--bcl-gray, #64748b)}.compliance-period-select{padding:.3rem .6rem;border:1px solid #d1d5db;border-radius:0;font-size:.88rem;background:#fff}.compliance-summary{display:flex;gap:1px;margin-bottom:1.2rem;background:#e3e3e3;border:1px solid #e3e3e3}.compliance-stat{flex:1;text-align:center;padding:.6rem .5rem;background:#fff}.compliance-stat-value{display:block;font-size:1.4rem;font-weight:700;color:#0f172a}.compliance-stat-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--bcl-gray, #64748b);margin-top:.15rem}.compliance-stat--pass .compliance-stat-value{color:#16a34a}.compliance-stat--fail .compliance-stat-value{color:#b46a6a}.compliance-stat--late .compliance-stat-value{color:#c2a46b}.compliance-table-wrap{overflow-x:auto}.compliance-table{width:100%;border-collapse:collapse;font-size:.85rem}.compliance-table th,.compliance-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid #e3e3e3}.compliance-table thead th{background:var(--bcl-blue-very-soft, #f3f9fe);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--bcl-gray, #64748b);font-weight:600;white-space:nowrap;border-bottom:2px solid #d1d5db}.compliance-table tbody tr:hover{background:#fafbfc}.compliance-td-reporter{display:flex;flex-direction:column;gap:.1rem;min-width:160px}.compliance-reporter-name{font-weight:600;color:#0f172a}.compliance-reporter-id{font-size:.72rem;color:#94a3b8;font-variant-numeric:tabular-nums}.compliance-td-file{white-space:nowrap}.compliance-td-file,.compliance-td-overall{vertical-align:middle}.compliance-badge{display:inline-block;padding:.15rem .5rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:0}.compliance-badge--accepted{background:#dcfce7;color:#166534}.compliance-badge--rejected{background:#fde8e8;color:#7e1b2f}.compliance-badge--late{background:#fef3c7;color:#92400e}.compliance-badge--pending{background:#f1f5f9;color:#64748b}.compliance-badge--complete{background:#dcfce7;color:#166534}.compliance-badge--issues{background:#fde8e8;color:#7e1b2f}.compliance-attempts,.compliance-due{display:block;font-size:.68rem;color:#94a3b8;margin-top:.15rem}.compliance-reminder-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;margin:0 1.25rem .75rem;background:#fff7ed;border-left:3px solid #f59e0b}.compliance-reminder-text{font-size:.82rem;font-weight:500;color:#92400e}.compliance-reminder-btn{background:#1e3a5f;color:#fff;border:none;padding:.4rem 1rem;font-size:.78rem;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;border-radius:0}.compliance-reminder-btn:hover{background:#2a4f7f}.compliance-actions{display:flex;justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid #e2e8f0}.compliance-run-btn{background:#1e3a5f;color:#fff;border:none;padding:.55rem 1.4rem;font-size:.82rem;font-weight:600;cursor:pointer;letter-spacing:.03em;border-radius:3px;display:flex;align-items:center;gap:.5rem;transition:background .15s}.compliance-run-btn:hover:not(:disabled){background:#2a4f7f}.compliance-run-btn:disabled{opacity:.7;cursor:not-allowed}.aggregation-banner{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.25rem;margin:0 1.25rem .5rem;border-radius:4px;font-size:.82rem;font-weight:500;line-height:1.4;animation:bannerSlideIn .25s ease-out}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.aggregation-banner--running{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.aggregation-banner--success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.aggregation-banner--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.aggregation-icon{font-size:1.1rem;font-weight:700;flex-shrink:0}.aggregation-dismiss{margin-left:auto;background:none;border:none;font-size:1.1rem;cursor:pointer;color:inherit;opacity:.6;padding:0 .3rem}.aggregation-dismiss:hover{opacity:1}.aggregation-spinner{width:16px;height:16px;border:2px solid #bfdbfe;border-top-color:#1e40af;border-radius:50%;animation:aggSpin .8s linear infinite;flex-shrink:0}.aggregation-spinner--small{width:14px;height:14px;border-color:#ffffff4d;border-top-color:#fff}@keyframes aggSpin{to{transform:rotate(360deg)}}.compliance-badge--no-data{background:#f8fafc;color:#cbd5e1;border:1px dashed #e2e8f0}.compliance-badge--submitted{background:#dbeafe;color:#1e40af}.compliance-errors{display:block;font-size:.65rem;margin-top:.15rem}.compliance-err-count{color:#dc2626;margin-right:.4rem;font-weight:600}.compliance-warn-count{color:#d97706;font-weight:600}.compliance-date{display:block;font-size:.62rem;color:#94a3b8;margin-top:.1rem}.validation-progress-backdrop{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:vp-fade-in .2s ease-out}@keyframes vp-fade-in{0%{opacity:0}to{opacity:1}}.validation-progress-modal{background:#fff;border-radius:0;padding:0;width:min(460px,100%);max-height:90vh;overflow:hidden;box-shadow:0 12px 40px #0f172a2e;border:1px solid #e3e3e3}.validation-progress-header{display:flex;align-items:center;gap:1rem;padding:0 1rem 0 2.7rem;min-height:2.2rem;height:2.2rem;background:#a9c5d9;position:relative;overflow:hidden}.validation-progress-header:before{content:"";position:absolute;left:0;top:0;height:100%;width:2.2rem;background:#6ea4bf}.validation-progress-title{margin:0;font-size:1rem;font-weight:400;letter-spacing:.2px;font-family:Nunito Sans,Montserrat Light,Helvetica Neue,Arial,sans-serif;color:#fff;text-transform:uppercase;line-height:1}.validation-progress-bar-track{height:3px;background:#e2e8f0}.validation-progress-bar-fill{height:100%;background:var(--bcl-blue, #1f78b4);transition:width .4s cubic-bezier(.4,0,.2,1)}.validation-progress-subtitle-row{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1rem;background:var(--bcl-blue-very-soft, #f3f9fe);border-bottom:1px solid #e3e3e3}.validation-progress-subtitle{margin:0;font-size:.78rem;color:var(--bcl-gray, #64748b);text-transform:uppercase;letter-spacing:.06em}.validation-progress-status{font-size:.78rem;color:var(--bcl-gray, #64748b);display:flex;align-items:center;gap:.35rem}.validation-progress-status .status-dot{width:6px;height:6px;border-radius:50%;background:var(--bcl-blue, #1f78b4);animation:vp-pulse 1.4s ease-in-out infinite}.validation-progress-status .status-dot--done{background:#64748b;animation:none}.validation-progress-status .status-dot--error{background:#b46a6a;animation:none}@keyframes vp-pulse{0%,to{opacity:1}50%{opacity:.25}}.validation-progress-body{padding:.6rem 1rem .8rem;max-height:55vh;overflow-y:auto}.validation-progress-error{padding:.55rem .75rem;margin-bottom:.6rem;background:#fdf0f0;color:#7e1b2f;border-radius:0;font-size:.82rem;border-left:3px solid #b46a6a}.validation-progress-steps{display:flex;flex-direction:column;gap:1px}.validation-step{display:flex;align-items:center;gap:.55rem;padding:.35rem .5rem;border-radius:0;animation:vp-step-in .3s ease-out both}@keyframes vp-step-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.validation-step--in_progress{background:var(--bcl-blue-very-soft, #f3f9fe);border-left:3px solid var(--bcl-blue, #1f78b4);padding-left:calc(.5rem - 3px)}.validation-step--done{opacity:.65}.validation-step-icon{flex-shrink:0;width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;border-radius:0}.validation-step--done .validation-step-icon{background:#cbd5e1;color:#475569;font-weight:700}.validation-step--in_progress .validation-step-icon{background:transparent}.validation-step-label{flex:1;font-size:.82rem;color:#334155}.validation-step--in_progress .validation-step-label{font-weight:600;color:var(--bcl-blue-dark, #155a8a)}.validation-step--done .validation-step-label{color:#94a3b8}.validation-step-time{font-size:.72rem;color:#94a3b8;font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}.validation-step-spinner{width:.85rem;height:.85rem;border:2px solid #cbd5e1;border-top-color:var(--bcl-blue, #1f78b4);border-radius:50%;animation:vp-spin .65s linear infinite}@keyframes vp-spin{to{transform:rotate(360deg)}}.validation-step--connecting{justify-content:center;padding:1.8rem 0;gap:.7rem;animation:none}.validation-step--connecting .validation-step-spinner{width:1.1rem;height:1.1rem}.validation-step--connecting .validation-step-label{flex:unset;color:var(--bcl-gray, #64748b);font-size:.85rem}.validation-progress-footer{padding:.6rem 1rem;border-top:1px solid #e3e3e3;display:flex;align-items:center;justify-content:space-between;background:var(--bcl-blue-very-soft, #f3f9fe)}.validation-progress-total{font-weight:600;font-size:.85rem;color:#0f172a;margin:0}.rules-explorer-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.8rem 1.25rem;border-bottom:1px solid #e2e8f0}.rules-count{font-weight:600;font-size:.9rem}.rules-filters{display:flex;gap:1rem;align-items:center}.rules-filters label{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.rules-family-select,.rules-search-input{padding:.35rem .5rem;font-size:.8rem;border:1px solid #cbd5e1}.rules-search-input{min-width:180px}.rules-list{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.rule-card{border:1px solid #e2e8f0;border-radius:2px;overflow:hidden;background:#fafafa}.rule-card-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .8rem;background:#f1f5f9;font-size:.82rem}.rule-badge{padding:.2rem .5rem;border-radius:2px;font-weight:600;text-transform:lowercase;font-size:.72rem}.rule-badge--positivity{background:#dcfce7;color:#166534}.rule-badge--zero-constraints{background:#dbeafe;color:#1e40af}.rule-badge--hierarchy-simple{background:#ffedd5;color:#c2410c}.rule-badge--hierarchy-complex{background:#ede9fe;color:#5b21b6}.rule-badge--cross-report-tpt{background:#fee2e2;color:#991b1b}.rule-id{margin-right:.3rem;font-family:ui-monospace,monospace}.rule-severity{padding:.15rem .4rem;background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:600}.rule-source{margin-left:auto;font-size:.75rem;color:#64748b}.rule-card-body{display:flex;align-items:flex-start;gap:1rem;padding:.8rem 1rem;flex-wrap:wrap}.rule-side{flex:1;min-width:140px;padding:.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:2px}.rule-side-label{font-size:.7rem;font-weight:700;text-transform:uppercase;color:#64748b;margin-bottom:.4rem}.rule-op{font-size:1.2rem;font-weight:700;color:#1e3a5f;align-self:center;padding:0 .3rem}.rule-term-pill{font-size:.78rem;padding:.25rem .4rem;margin-bottom:.25rem;background:#f8fafc;border-radius:2px;border-left:3px solid #94a3b8}.rule-term-pill:last-child{margin-bottom:0}.rule-term-code{font-family:ui-monospace,monospace;margin-right:.4rem}.rule-term-dims{color:#64748b;font-size:.72rem}.rule-term-const{font-weight:600;color:#0f172a}.rule-notes{padding:.4rem .8rem;font-size:.75rem;border-top:1px solid #e2e8f0}.csvlog-table{width:100%;border-collapse:collapse;font-size:.82rem}.csvlog-table th{background:#f1f5f9;padding:.5rem .8rem;text-align:left;font-weight:600;border-bottom:2px solid #e2e8f0;white-space:nowrap}.csvlog-table td{padding:.45rem .8rem;border-bottom:1px solid #e2e8f0}.csvlog-table tbody tr:hover{background:#f8fafc}.csvlog-file{font-family:ui-monospace,monospace;font-size:.78rem;word-break:break-all}.csvlog-version{font-family:ui-monospace,monospace;font-size:.78rem;color:#64748b}.csvlog-bucket{font-size:.75rem;color:#64748b;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cos-download-link{color:var(--bcl-blue, #1e40af);text-decoration:none}.cos-download-link:hover{text-decoration:underline}.report-period-sections{padding:.5rem 1rem 1rem}.report-period-group{margin-bottom:1.25rem}.report-period-group:last-child{margin-bottom:0}.report-period-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--bcl-blue, #1e40af)}.report-period-label{font-size:1.1rem;font-weight:700;color:var(--bcl-blue, #1e40af)}.report-period-count{font-size:.8rem;color:#64748b}.report-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.report-card{display:flex;flex-direction:column;padding:.85rem 1rem;border:2px solid #e2e8f0;border-radius:6px;background:#f8f9fa;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.report-card--latest{border-color:var(--bcl-blue, #1e40af);background:#fff;box-shadow:0 1px 6px #1e40af1a}.report-card--old{opacity:.65;border-color:#d1d5db;background:#f3f4f6}.report-card:hover{opacity:1;border-color:var(--bcl-blue, #1e40af);box-shadow:0 2px 10px #1e40af26;background:#fff}.report-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.report-card-badge{font-size:.85rem;font-weight:700;letter-spacing:.03em}.report-card-badge--latest{color:var(--bcl-blue, #1e40af)}.report-card-badge--old{color:#6b7280}.report-card-current{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .5rem;border-radius:3px;background:var(--bcl-blue, #1e40af);color:#fff}.report-card-date{font-size:.95rem;font-weight:600;margin-bottom:.5rem;color:#1e293b}.report-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.4rem;border-top:1px solid #e5e7eb}.report-card-filename{font-family:ui-monospace,monospace;font-size:.7rem;color:#64748b;word-break:break-all;line-height:1.3}.report-card-size{font-size:.7rem;color:#94a3b8;white-space:nowrap}.inbox-card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.inbox-card{display:flex;flex-direction:column;padding:.85rem 1rem;border:2px solid #e2e8f0;border-radius:6px;background:#f8f9fa;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,background .15s}.inbox-card:hover{border-color:var(--bcl-blue, #1e40af);box-shadow:0 2px 10px #1e40af26;background:#fff}.inbox-card--expandable{padding:0;cursor:default}.inbox-card--expandable:hover{border-color:#e2e8f0;box-shadow:none;background:#f8f9fa}.inbox-card-clickable{display:flex;flex-direction:column;align-items:stretch;width:100%;padding:.85rem 1rem;text-align:left;border:none;background:transparent;cursor:pointer;color:inherit;font:inherit}.inbox-card--expandable .inbox-card-clickable:hover{background:#f1f5f9}.inbox-card--expanded{border-color:var(--bcl-blue, #1e40af);background:#fff}.inbox-card--expanded .inbox-card-clickable{border-bottom:1px solid #e5e7eb}.inbox-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem}.inbox-card-badge{font-size:.8rem;font-weight:700;padding:.15rem .45rem;border-radius:4px;background:var(--bcl-blue, #1e40af);color:#fff}.inbox-card-badge--type{background:#64748b}.inbox-card-badge--layout{background:#0d9488}.inbox-card-versions{font-size:.9rem;font-weight:600;margin-bottom:.25rem}.inbox-card-date{font-size:.8rem}.inbox-card-filename{font-size:.6rem;font-family:ui-monospace,monospace;color:#64748b;word-break:break-all;margin-top:.35rem;line-height:1.2;max-height:2.4em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.inbox-versions-list{padding:.5rem 1rem .85rem;display:flex;flex-direction:column;gap:.35rem;max-height:0;overflow:hidden;transition:max-height .2s ease-out}.inbox-card--expanded .inbox-versions-list{max-height:400px}.inbox-version-row{display:flex;align-items:center;gap:.75rem;font-size:.8rem;padding:.35rem .5rem;background:#f1f5f9;border-radius:4px}.inbox-version-num{font-weight:600;min-width:2.5rem}.inbox-version-date{flex:1;color:#475569}.inbox-version-dl{font-size:.75rem;font-weight:600;color:var(--bcl-blue, #1e40af);text-decoration:none}.inbox-version-dl:hover{text-decoration:underline}
