.layout{--sidebar-w: 264px;--sidebar-collapsed-w: 68px;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100vh;background:#f5f7fb}.layout[data-sidebar-collapsed=true]{grid-template-columns:var(--sidebar-collapsed-w) minmax(0,1fr)}.sidebar{position:sticky;top:0;grid-row:1 / span 2;display:flex;height:100vh;flex-direction:column;overflow:hidden;border-right:1px solid #d9e2ec;background:#fff}.sidebar-brand{display:flex;min-height:64px;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #d9e2ec;color:#172026;text-decoration:none}.sidebar-brand img{display:block;width:min(188px,48vw);max-height:44px;object-fit:contain}.sidebar-brand span{color:#667789;font-size:.78rem;font-weight:700;line-height:1.15}.sidebar-nav{display:grid;align-content:start;gap:3px;flex:1 1 auto;padding:12px 8px}.sidebar-link,.sidebar-toggle{display:flex;min-height:40px;align-items:center;gap:10px;border-radius:8px;color:#405060;font-weight:700;text-decoration:none}.sidebar-link{padding:9px 10px}.sidebar-link:hover,.sidebar-toggle:hover,.sidebar-link-active{color:#172026;background:#eef4fb}.sidebar-link-active{color:#174ea6;background:#e7f0ff}.sidebar-link-icon{width:20px;height:20px;flex:0 0 auto;color:#174ea6}.sidebar-footer{padding:10px;border-top:1px solid #d9e2ec}.sidebar-toggle{width:100%;border:1px solid #d9e2ec;background:#fff;cursor:pointer;padding:8px 10px}.layout[data-sidebar-collapsed=true] .sidebar-brand span,.layout[data-sidebar-collapsed=true] .sidebar-link-label,.layout[data-sidebar-collapsed=true] .sidebar-toggle .sidebar-link-label{display:none}.layout[data-sidebar-collapsed=true] .sidebar-brand,.layout[data-sidebar-collapsed=true] .sidebar-link,.layout[data-sidebar-collapsed=true] .sidebar-toggle{justify-content:center}.layout[data-sidebar-collapsed=true] .sidebar-brand img{width:42px}.header{position:sticky;top:0;z-index:5;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;padding:10px clamp(16px,3vw,28px);border-bottom:1px solid #d9e2ec;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-title{display:flex;min-width:0;align-items:center;gap:10px}.header-title span{display:block;color:#667789;font-size:12px;font-weight:800}.header-title h1{margin:0;color:#172026;font-size:17px;line-height:1.15}.header-toggle,.logout-button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border-radius:8px;font-weight:800}.header-toggle{width:38px;border:1px solid #d9e2ec;color:#405060;background:#fff}.header-toggle svg,.logout-button svg{width:18px;height:18px}.logout-button{gap:.45rem;padding:.5rem .9rem;border:1px solid #c5d3e2;color:#174ea6;background:#fff;white-space:nowrap}.header-toggle:hover,.logout-button:hover{background:#eef4fb}.main-content{width:min(1200px,100%);margin:0 auto;padding:2rem clamp(1rem,3vw,2rem)}@media (max-width: 900px){.layout{grid-template-columns:var(--sidebar-collapsed-w) minmax(0,1fr)}.sidebar-brand span,.sidebar-link-label{display:none}.sidebar-brand,.sidebar-link,.sidebar-toggle{justify-content:center}}@media (max-width: 640px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.header{align-items:flex-start;flex-direction:column}.logout-button{width:100%}}.program-wizard{width:100%}.wizard-shell{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:1rem;align-items:start}.wizard-progress,.wizard-card,.wizard-subcard,.wizard-module,.wizard-requirement,.wizard-outcome,.wizard-summary-block{background:#fff;border:1px solid #d9e2ec;border-radius:8px;box-shadow:0 8px 22px #1720260f}.wizard-progress{position:sticky;top:1rem;overflow:hidden}.wizard-progress-header{padding:1rem;border-bottom:1px solid #d9e2ec}.wizard-progress-header span,.eyebrow{color:#667789;font-size:.78rem;font-weight:700;text-transform:uppercase}.wizard-progress-header strong{display:block;margin-top:.2rem}.wizard-progress ol{list-style:none}.wizard-progress button{display:grid;width:100%;grid-template-columns:30px 1fr;gap:.6rem;align-items:center;border:0;border-bottom:1px solid #edf2f7;background:#fff;padding:.72rem 1rem;color:#526170;text-align:left}.wizard-progress li.active button{background:#eef5ff;color:#172026;font-weight:700}.wizard-progress li.done button{color:#2563eb}.wizard-progress button span:first-child{display:grid;width:26px;height:26px;place-items:center;border-radius:999px;background:#e8edf3;color:#172026;font-size:.8rem;font-weight:800}.wizard-progress svg{width:15px;height:15px}.wizard-main{min-width:0}.wizard-header,.wizard-footer,.wizard-section-title,.wizard-subcard-header,.wizard-toggle-row,.wizard-inline,.wizard-chips{display:flex;align-items:center;gap:.75rem}.wizard-header{justify-content:space-between;margin-bottom:1rem}.wizard-header h2{margin:.1rem 0 0;color:#172026}.wizard-header-actions,.wizard-footer{display:flex;gap:.6rem;flex-wrap:wrap}.wizard-card{padding:1rem}.wizard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.wizard-grid.compact{gap:.75rem}.wizard-field{display:flex;min-width:0;flex-direction:column;gap:.35rem;color:#172026;font-weight:700}.wizard-field input,.wizard-field select,.wizard-field textarea,.wizard-rule-row input,.wizard-rule-row select,.wizard-rule-card input,.wizard-rule-card select,.wizard-rule-card textarea,.wizard-builder input,.wizard-builder select,.wizard-builder textarea{width:100%;min-height:38px;border:1px solid #c8d3df;border-radius:6px;background:#fff;color:#172026;font:inherit;padding:.5rem .6rem}.wizard-field textarea{min-height:86px;resize:vertical}.wizard-builder textarea,.wizard-rule-card textarea{min-height:72px;resize:vertical}.wizard-field small{color:#667789;font-weight:500}.wizard-field-error{color:var(--danger-color)}.wizard-stack{display:grid;gap:.9rem}.wizard-subcard,.wizard-module,.wizard-requirement,.wizard-outcome,.wizard-summary-block{padding:1rem}.wizard-subcard-header,.wizard-section-title{justify-content:space-between;margin-bottom:.75rem}.wizard-section-title h3,.wizard-summary-block h3{margin:0;color:#172026;font-size:1rem}.wizard-toggle-row{flex-wrap:wrap;margin-top:.75rem}.wizard-toggle-row label{display:inline-flex;gap:.45rem;align-items:center;color:#405060;font-weight:700}.wizard-inline{align-items:stretch}.wizard-inline input{flex:1}.wizard-chips{flex-wrap:wrap;margin-top:.4rem}.wizard-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #c8d3df;border-radius:999px;background:#f8fbff;color:#405060;padding:.24rem .55rem;font-size:.82rem;font-weight:700}.wizard-chip button{border:0;background:transparent;color:#667789;font-weight:900}.wizard-empty,.wizard-empty-inline{border:1px dashed #c8d3df;border-radius:8px;background:#f8fbff;color:#667789;padding:1rem}.wizard-empty{display:grid;gap:.6rem;place-items:center;text-align:center}.wizard-empty svg{color:#2563eb}.wizard-rule-row{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr 1.5fr auto;gap:.55rem;align-items:center;padding:.75rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff}.wizard-rule-row.trigger{grid-template-columns:1.1fr 1.5fr 1.2fr auto auto}.wizard-rule-row.evidence{grid-template-columns:1fr 1.5fr auto auto}.wizard-rule-row.signoff,.wizard-rule-row.completion{grid-template-columns:minmax(0,1fr) auto auto}.wizard-rule-card,.wizard-condition-builder,.wizard-builder{display:grid;gap:.75rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff;padding:.85rem}.wizard-condition-builder,.wizard-builder{margin-top:.85rem;background:#f8fbff}.wizard-rule-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.wizard-rule-preview{display:flex;gap:.75rem;align-items:center;justify-content:space-between;border-radius:6px;background:#eef5ff;color:#24415f;padding:.65rem .75rem;font-weight:800}.wizard-rule-preview label{display:inline-flex;gap:.4rem;align-items:center;color:#405060}.outcome-preview{background:#f0fff4;color:#17652d}.wizard-builder-list{display:grid;gap:.75rem}.wizard-builder-item{display:grid;gap:.65rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff;padding:.75rem}.wizard-requirements{display:grid;gap:.75rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid #edf2f7}.wizard-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.wizard-review{display:grid;gap:.9rem}.wizard-warning-list,.wizard-ready{display:flex;gap:.75rem;align-items:flex-start;border-radius:8px;padding:1rem}.wizard-warning-list{border:1px solid #ffd9a8;background:#fff8ed;color:#7a4a00}.wizard-warning-list svg{flex:0 0 auto;color:#d97706}.wizard-warning-list p{margin:.2rem 0 0}.wizard-ready{border:1px solid #bfe7ca;background:#f0fff4;color:#17652d}.wizard-ready svg{color:#30a040}.wizard-muted{color:#667789}.wizard-footer{justify-content:space-between;margin-top:1rem}.wizard-footer-status{display:flex;flex:1;align-items:center;justify-content:center;color:#667789;font-weight:700}.program-wizard .btn{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:.45rem}.program-wizard .btn svg,.icon-button svg{width:16px;height:16px}.icon-button{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid #c8d3df;border-radius:6px;background:#fff;color:#526170}.icon-button:hover{color:#b42318;border-color:#f1b8b2}@media (max-width: 1100px){.wizard-shell,.wizard-two-column{grid-template-columns:1fr}.wizard-progress{position:static}.wizard-progress ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.wizard-grid,.wizard-progress ol,.wizard-rule-row,.wizard-rule-row.trigger,.wizard-rule-row.evidence,.wizard-rule-row.signoff,.wizard-rule-row.completion,.wizard-rule-card-grid{grid-template-columns:1fr}.wizard-rule-preview,.wizard-header,.wizard-footer{align-items:stretch;flex-direction:column}.wizard-footer-status{justify-content:flex-start}}.training-programs-page{display:grid;gap:1rem}.program-page-actions,.program-row-title,.program-row-actions,.published-indicator{display:flex;align-items:center;gap:.6rem}.program-page-actions{flex-wrap:wrap}.programs-list{display:grid;gap:.8rem}.program-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff;box-shadow:0 8px 22px #1720260f}.program-row h2{margin:0;color:#172026;font-size:1.1rem}.program-row p{margin:.35rem 0 0;color:#526170}.program-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.75rem;color:#667789;font-size:.9rem;font-weight:700}.status-pill{display:inline-flex;align-items:center;border-radius:999px;background:#eef5ff;color:#174ea6;padding:.18rem .5rem;font-size:.76rem;font-weight:800;text-transform:capitalize}.status-pill.published{background:#effaf2;color:#17652d}.status-pill.warning{background:#fff5e8;color:#9a5b00}.published-indicator{color:#17652d;font-weight:800}.published-indicator svg,.program-page-actions svg,.program-row-actions svg{width:16px;height:16px}.program-empty{display:grid;gap:.75rem;justify-items:start;padding:1.5rem;border:1px dashed #c8d3df;border-radius:8px;background:#fff}.program-empty h2{margin:0}.program-empty p{max-width:720px;color:#526170}.training-programs-page .btn{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:.45rem}@media (max-width: 820px){.program-row{grid-template-columns:1fr}.program-row-actions{justify-content:flex-start;flex-wrap:wrap}}.training-assignments-page{padding:1rem}.assignments-list{display:grid;gap:1.5rem}.assignment-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:box-shadow .3s}.assignment-card:hover{box-shadow:0 4px 8px #00000026}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.assignment-header h2{margin:0;color:var(--secondary-color);flex:1}.assignment-status{padding:.3rem .8rem;border-radius:20px;font-size:.8rem;font-weight:500}.status-completed{background-color:#d4edda;color:#155724}.status-in-progress{background-color:#fff3cd;color:#856404}.status-pending{background-color:#d1ecf1;color:#0c5460}.assignment-details{margin-bottom:1.5rem}.assignment-details p{margin:.5rem 0;color:#7f8c8d}.assignment-details strong{color:var(--secondary-color)}.assignment-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}@media (max-width: 768px){.assignment-header{flex-direction:column;align-items:stretch}.assignment-actions{flex-direction:column}.assignment-actions .btn{width:100%}}.program-modules-page{display:grid;gap:1rem}.program-modules-page .btn{display:inline-flex;width:auto;align-items:center;justify-content:center;gap:.45rem}.program-modules-page .btn svg,.module-empty svg{width:16px;height:16px}.module-empty{display:grid;gap:.75rem;justify-items:start;padding:1.5rem;border:1px dashed #c8d3df;border-radius:8px;background:#fff}.module-empty>svg{width:32px;height:32px;color:#2563eb}.module-empty h2,.module-program-card h2,.module-card h3{margin:0}.module-empty p,.module-program-card p,.module-card p{color:#526170}.module-empty.compact{padding:1rem}.module-program-list{display:grid;gap:1rem}.module-program-card{display:grid;gap:1rem;padding:1rem;border:1px solid #d9e2ec;border-radius:8px;background:#fff;box-shadow:0 8px 22px #1720260f}.module-program-card header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.module-list{display:grid;gap:.75rem}.module-card{display:grid;gap:.75rem;padding:.9rem;border:1px solid #edf2f7;border-radius:8px;background:#f8fbff}.module-requirements{display:flex;flex-wrap:wrap;gap:.45rem}.module-requirement-chip{display:inline-flex;border:1px solid #c8d3df;border-radius:999px;background:#fff;color:#405060;padding:.25rem .55rem;font-size:.82rem;font-weight:700}.module-requirement-chip.muted{color:#667789}@media (max-width: 760px){.module-program-card header{align-items:stretch;flex-direction:column}}:root{--primary-color: #2563eb;--primary-hover: #174ea6;--secondary-color: #172026;--success-color: #30a040;--warning-color: #ff8a22;--danger-color: #e74c3c;--light-color: #ecf0f1;--dark-color: #405060;--border-radius: 4px;--box-shadow: 0 2px 4px rgba(0,0,0,.1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fb;color:#172026;line-height:1.6}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.card{background:#fff;border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:1.5rem;margin-bottom:1rem}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mr-1{margin-right:.5rem}.mr-2{margin-right:1rem}.ml-1{margin-left:.5rem}.ml-2{margin-left:1rem}.p-1{padding:.5rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.btn{padding:.5rem 1rem;border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:500;transition:all .3s;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:#1f3248}.btn-outline{background-color:transparent;border:1px solid var(--secondary-color);color:var(--secondary-color)}.btn-outline:hover{background-color:var(--light-color)}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover{background-color:#219653}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:#c0392b}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500}.form-control{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:var(--border-radius);font-size:1rem}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}.alert{padding:1rem;border-radius:var(--border-radius);margin-bottom:1rem}.alert-success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-warning{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.alert-danger{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.auth-page{min-height:100vh;background:linear-gradient(180deg,#f8fbff,#f5f7fb)}.auth-header{position:sticky;top:0;z-index:5;display:flex;min-height:64px;align-items:center;padding:10px clamp(16px,3vw,28px);border-bottom:1px solid #d9e2ec;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auth-brand{display:inline-flex;align-items:center;gap:.65rem;color:#172026;text-decoration:none}.auth-brand img{display:block;width:min(188px,48vw);max-height:44px;object-fit:contain}.auth-brand span{color:#667789;font-size:.78rem;font-weight:700;line-height:1.15}.auth-main{display:grid;min-height:calc(100vh - 64px);place-items:center;padding:1.5rem}.auth-panel{width:min(100%,420px);background:#fff;border-radius:8px;border:1px solid #d9e2ec;box-shadow:0 16px 40px #1720261f;padding:2rem}.auth-logo{display:block;width:min(100%,260px);max-height:76px;object-fit:contain;margin-bottom:1rem}.auth-icon{display:block;width:34px;height:34px;color:var(--primary-color);margin-bottom:.75rem}.auth-panel h1{color:var(--secondary-color);font-size:1.8rem;line-height:1.2;margin-bottom:.75rem}.auth-panel p{color:#526170;margin-bottom:1.5rem}.auth-status{color:#526170;font-weight:500}.nexarr-sso-button{display:block;width:min(100%,360px);padding:0;border:0;border-radius:18px;background:transparent;line-height:0;transition:transform 80ms ease,filter .12s ease,opacity .12s ease}.nexarr-sso-button:hover:not(:disabled){filter:brightness(1.03)}.nexarr-sso-button:active:not(:disabled){transform:translateY(1px)}.nexarr-sso-button:disabled{cursor:not-allowed;opacity:.55}.nexarr-sso-button:focus-visible{outline:3px solid var(--primary-color);outline-offset:3px}.nexarr-sso-button img{display:block;width:100%;height:auto;object-fit:contain}.table{width:100%;border-collapse:collapse;margin-bottom:1rem}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid #ddd}.table th{background-color:var(--light-color);font-weight:500}.table tr:hover{background-color:#f8f9fa}@media (max-width: 768px){.container{padding:0 .5rem}.card{padding:1rem}.btn{width:100%;margin-bottom:.5rem}}
