:root{--hvl-navy:#004357;--hvl-navy-dark:#002f3d;--hvl-blue:#008aaf;--hvl-blue-active:#00afba;--hvl-blue-light:#f0f9fa;--hvl-blue-border:#e6f5f7;--hvl-orange:#eb6851;--hvl-orange-dark:#d73519;--hvl-white:#fff;--hvl-bg:#fff;--hvl-bg-subtle:#f0f9fa;--hvl-bg-teal:#e2f3f5;--hvl-border:#e6f5f7;--hvl-text:#131114;--hvl-muted:#667070;--hvl-success:#1e7e34;--hvl-success-bg:#e6f4ea;--hvl-error:#c62828;--hvl-error-bg:#fce8e6}*,:before,:after{box-sizing:border-box}body{letter-spacing:.4px;background-color:var(--hvl-bg);min-width:320px;min-height:100vh;color:var(--hvl-text);margin:0;font-family:AkademieStd,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}h1{letter-spacing:.8px;color:var(--hvl-text);margin:0 0 .5rem;font-family:LyonText,Georgia,Times New Roman,serif;font-size:1.875rem;font-weight:900;line-height:1.3}h2,h3{letter-spacing:.2px;font-family:LyonText,Georgia,Times New Roman,serif;font-weight:700}a{color:var(--hvl-navy);border-bottom:1px solid;text-decoration:none;transition:color .15s}a:hover{color:var(--hvl-blue)}button{letter-spacing:.4px;cursor:pointer;border:0;border-radius:3px;padding:.55em 1.2em;font-family:AkademieStd,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.95rem;font-weight:600;transition:background-color .15s,color .15s}button:focus-visible{outline:3px solid var(--hvl-blue-active);outline-offset:2px}.outcome-review-row{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.flex-center-gap{align-items:center;gap:.75rem;display:flex}.flex-center-gap-sm{align-items:center;gap:.5rem;display:flex}.flex-wrap{flex-wrap:wrap}.download-json-btn{color:var(--hvl-navy);border:1.5px solid var(--hvl-blue-border);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.download-json-btn:hover{background:var(--hvl-blue-light);border-color:var(--hvl-blue);color:var(--hvl-blue)}.language-switcher-btn{color:var(--hvl-muted);border:1px solid var(--hvl-blue-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:.35rem .75rem;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s}.language-switcher-btn:hover{background:var(--hvl-blue-light);border-color:var(--hvl-blue);color:var(--hvl-blue)}.language-switcher-btn:focus-visible{outline:2px solid var(--hvl-blue);outline-offset:2px}.landing-page{width:100%;max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.landing-hero{border-bottom:1px solid var(--hvl-blue-border);margin-bottom:2.5rem;padding-bottom:1.5rem}.landing-title{color:var(--hvl-text);letter-spacing:.8px;margin:0 0 .5rem;font-family:LyonText,Georgia,serif;font-size:1.875rem;font-weight:900}.landing-subtitle{color:var(--hvl-muted);max-width:640px;margin:0;font-size:1rem;line-height:1.5}.landing-areas-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}.landing-area-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;flex-direction:column;gap:0;padding:2rem 1.75rem 1.75rem;transition:box-shadow .2s,border-color .2s;display:flex}.landing-area-card:hover{border-color:var(--hvl-blue)}.landing-area-card--teal{border-left:4px solid var(--hvl-blue)}.landing-area-card--navy{border-left:4px solid var(--hvl-navy)}.landing-area-card--orange{border-left:4px solid var(--hvl-orange)}.landing-area-icon{color:var(--hvl-muted);margin-bottom:.75rem;font-size:2rem}.landing-area-card--teal .landing-area-icon{color:var(--hvl-blue)}.landing-area-card--navy .landing-area-icon{color:var(--hvl-navy)}.landing-area-card--orange .landing-area-icon{color:var(--hvl-orange)}.landing-area-title{color:var(--hvl-text);letter-spacing:.3px;margin:0 0 .6rem;font-family:LyonText,Georgia,serif;font-size:1.35rem;font-weight:900}.landing-area-description{color:var(--hvl-muted);flex:1;margin:0 0 1.5rem;font-size:.9rem;line-height:1.55}.landing-area-btn{background-color:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;letter-spacing:.02em;border:none;border-radius:3px;align-self:flex-start;padding:.55rem 1.15rem;font-size:.9rem;font-weight:600;transition:background-color .15s}.landing-area-card--teal .landing-area-btn{background-color:var(--hvl-blue)}.landing-area-card--teal .landing-area-btn:hover,.landing-area-card--navy .landing-area-btn{background-color:var(--hvl-navy)}.landing-area-card--navy .landing-area-btn:hover{background-color:var(--hvl-blue)}.landing-area-card--orange .landing-area-btn{background-color:var(--hvl-orange)}.landing-area-card--orange .landing-area-btn:hover{background-color:var(--hvl-orange-dark)}.role-page{width:100%;max-width:1000px;margin:0 auto;padding:3rem 1.5rem 2rem;position:relative}.role-language-bar{position:absolute;top:1rem;right:1.5rem}.role-hero{text-align:center;border-bottom:1px solid var(--hvl-blue-border);margin-bottom:2.5rem;padding-bottom:1.5rem}.role-title{color:var(--hvl-navy);letter-spacing:.5px;margin:0 0 .75rem;font-family:LyonText,Georgia,serif;font-size:2rem;font-weight:900}.role-subtitle{color:var(--hvl-muted);max-width:640px;margin:0 auto .5rem;font-size:1rem;line-height:1.6}.role-subtitle:last-of-type{margin-bottom:0}.role-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:1fr;gap:1.25rem;margin:0 0 2.5rem;padding:0;list-style:none;display:grid}.role-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);text-align:center;border-radius:6px;flex-direction:column;align-items:center;padding:1.75rem 1.5rem 1.5rem;transition:box-shadow .2s,border-color .2s;display:flex}.role-card:hover{border-color:var(--hvl-blue)}.role-card-icon{color:var(--hvl-navy);margin-bottom:.75rem;font-size:2rem}.role-card-label{color:var(--hvl-text);justify-content:center;align-items:center;min-height:2.75rem;margin:0 0 .5rem;font-family:LyonText,Georgia,serif;font-size:1.1rem;font-weight:700;display:flex}.role-card-desc{color:var(--hvl-muted);flex:1;margin:0 0 1.25rem;font-size:.82rem;line-height:1.5}.role-card-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;text-align:center;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:100%;height:3.6rem;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600;transition:background .15s;display:flex}.role-card-btn:hover{background:var(--hvl-navy-dark)}.role-dashboard-cta{flex-direction:column;align-items:center;gap:.75rem;display:flex}.role-divider-text{color:var(--hvl-muted);text-transform:uppercase;letter-spacing:1px;font-size:.85rem}.role-dashboard-btn{color:var(--hvl-blue);border:1px solid var(--hvl-blue);cursor:pointer;background:0 0;border-radius:4px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:600;transition:background .15s,color .15s}.role-dashboard-btn:hover{background:var(--hvl-blue);color:var(--hvl-white)}.role-dashboard-icon{vertical-align:middle;margin-right:.4rem;font-size:1.1rem}@media (width<=760px){.classify-layout{grid-template-columns:1fr}}.bloom-secondary,.bloom-pending{color:#888;background:#f5f5f5}@keyframes spin{to{transform:rotate(360deg)}}.review-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .6rem;font-size:.7rem;font-weight:700;display:inline-flex}.review-badge-icon{font-size:.75rem;line-height:1}.review-badge--pending{color:#856404;background:#fff3cd;border-color:#ffc107}.review-badge--accepted{background:var(--hvl-success-bg,#e6f4ea);color:var(--hvl-success,#1e7e34);border-color:#a3d9a5}.review-badge--modified{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.review-badge--rejected{background:var(--hvl-error-bg,#fce8e6);color:var(--hvl-error,#c62828);border-color:#f5c6c2}.review-badge--manual{color:#7c3aed;background:#f3e8ff;border-color:#c4b5fd}.review-badge--partial{color:#c2410c;background:#fff7ed;border-color:#fdba74}.review-actions{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.review-btn{cursor:pointer;border:1px solid;border-radius:4px;align-items:center;gap:.3rem;padding:.35rem .85rem;font-size:.8rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.review-btn:disabled{opacity:.5;cursor:not-allowed}.review-btn--accept{background:var(--hvl-success-bg,#e6f4ea);color:var(--hvl-success,#1e7e34);border-color:#a3d9a5}.review-btn--accept:hover:not(:disabled){border-color:var(--hvl-success,#1e7e34);background:#c6e7cb}.review-btn--modify{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.review-btn--modify:hover:not(:disabled){background:#bae6fd;border-color:#0369a1}.review-btn--reject{background:var(--hvl-error-bg,#fce8e6);color:var(--hvl-error,#c62828);border-color:#f5c6c2}.review-btn--reject:hover:not(:disabled){border-color:var(--hvl-error,#c62828);background:#f5c6c2}.job-status{align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;display:inline-flex}.job-status--processing{color:var(--hvl-blue,#008aaf)}.job-status--completed{color:var(--hvl-success,#1e7e34)}.job-status--failed{color:var(--hvl-error,#c62828)}.job-status--not-found{color:var(--hvl-muted,#667070)}.job-status-spinner{border:2px solid var(--hvl-blue-border,#e6f5f7);border-top-color:var(--hvl-blue,#008aaf);border-radius:50%;flex-shrink:0;width:.9rem;height:.9rem;animation:.8s linear infinite review-spin;display:inline-block}.job-status-icon{font-size:.85rem;line-height:1}@keyframes review-spin{to{transform:rotate(360deg)}}.review-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.review-section-header h3{margin:0;font-size:1rem}.level-legend-wrapper{align-items:center;display:inline-flex;position:relative}.level-legend-btn{border:1.5px solid var(--hvl-border,#c5c5c5);background:var(--hvl-card-bg,#fff);color:var(--hvl-muted,#555);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;line-height:1.3;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.level-legend-btn:hover{background:var(--hvl-blue-light,#e8f0fe);color:var(--hvl-navy,#003466);border-color:var(--hvl-navy,#003466);box-shadow:0 1px 4px #00000014}.level-legend-icon{background:var(--hvl-blue-light,#e8f0fe);width:1.15rem;height:1.15rem;color:var(--hvl-navy,#003466);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}.level-legend-label{font-size:.75rem}.level-legend-popover{z-index:1000;background:var(--hvl-card-bg,#fff);border:1px solid var(--hvl-border,#ddd);border-radius:.625rem;min-width:340px;max-width:90vw;max-height:75vh;padding:1rem 1.25rem;animation:.15s legendFadeIn;position:absolute;top:calc(100% + .5rem);left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 8px 24px #00000024}.nqf-legend-table{min-width:580px}@keyframes legendFadeIn{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.level-legend-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.9rem;display:flex}.level-legend-close{cursor:pointer;color:var(--hvl-muted,#666);background:0 0;border:none;padding:0 .15rem;font-size:1rem;line-height:1}.level-legend-close:hover{color:var(--hvl-navy,#003466)}.level-legend-table{border-collapse:collapse;width:100%;font-size:.78rem;line-height:1.35}.level-legend-table th{text-align:left;border-bottom:2px solid var(--hvl-border,#ddd);white-space:nowrap;color:var(--hvl-navy,#003466);padding:.35rem .5rem;font-weight:600}.level-legend-table td{border-bottom:1px solid var(--hvl-border-light,#eee);vertical-align:top;padding:.35rem .5rem}.level-legend-table tbody tr:last-child td{border-bottom:none}.level-legend-table tbody tr:hover{background:var(--hvl-blue-light,#f0f4ff)}.bloom-label{white-space:nowrap;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.bloom-label.bloom-remembering{background:var(--hvl-blue-light,#e8f0fe);color:var(--hvl-navy,#003466)}.bloom-label.bloom-understanding{background:var(--hvl-success-bg,#e9f7ef);color:var(--hvl-success,#1a7a3a)}.bloom-label.bloom-applying{color:#b45309;background:#fef7e0}.bloom-label.bloom-analyzing{color:#7c3aed;background:#f3e8ff}.bloom-label.bloom-evaluating{background:var(--hvl-error-bg,#fdeaea);color:var(--hvl-error,#c0392b)}.bloom-label.bloom-creating{color:#0369a1;background:#e0f2fe}.legend-verbs{color:var(--hvl-muted,#666);font-style:italic}.legend-footer{color:var(--hvl-muted,#666);margin:.75rem 0 0;font-size:.75rem}.legend-footer a{color:var(--hvl-navy,#003466);text-decoration:underline}@media (width<=600px){.level-legend-popover{width:calc(100vw - 2rem);min-width:auto;left:0;transform:none}@keyframes legendFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}}.classify-page{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.classify-page h1{margin-bottom:.25rem}.classify-subtitle{color:var(--hvl-muted);margin-bottom:1.75rem}.classify-layout{grid-template-columns:300px 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=760px){.classify-layout{grid-template-columns:1fr}}.course-panel{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);border-radius:6px;flex-direction:column;max-height:calc(100vh - 10rem);display:flex;overflow:hidden}.course-panel-toolbar{border-bottom:1px solid var(--hvl-blue-border);background:var(--hvl-bg-subtle);flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.course-search-input{background:var(--hvl-white);box-sizing:border-box;border:1px solid #d0dce0;border-radius:4px;width:100%;padding:.5rem .75rem;font-size:.875rem;transition:border-color .15s}.course-search-input:focus{border-color:var(--hvl-blue);outline:none}.course-search-input:focus-visible{outline:2px solid var(--hvl-blue);outline-offset:1px}.course-filter-pills{flex-wrap:wrap;gap:.4rem;display:flex}.filter-pill{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);color:var(--hvl-muted);cursor:pointer;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.filter-pill:hover{border-color:var(--hvl-blue);color:var(--hvl-navy)}.filter-pill.active{background:var(--hvl-navy);border-color:var(--hvl-navy);color:var(--hvl-white)}.course-count{color:var(--hvl-muted);margin:0;font-size:.75rem}.course-panel-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.course-panel-list li{border-bottom:1px solid var(--hvl-blue-border)}.course-panel-list li:last-child{border-bottom:none}.course-list-item{all:unset;cursor:pointer;box-sizing:border-box;text-align:left;width:100%;padding:.65rem .9rem;transition:background .1s;display:block}.course-list-item:hover{background:var(--hvl-bg-subtle)}.course-list-item.selected{background:var(--hvl-blue-light);border-left:3px solid var(--hvl-blue);padding-left:calc(.9rem - 3px)}.course-list-item:focus-visible{outline:2px solid var(--hvl-blue);outline-offset:-2px}.cli-top{justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.cli-code{color:var(--hvl-navy);font-size:.875rem;font-weight:700}.cli-credits{color:var(--hvl-muted);white-space:nowrap;font-size:.72rem}.cli-name{color:var(--hvl-text);margin-top:.1rem;font-size:.8rem;line-height:1.3}.cli-analyzed-badge{color:var(--hvl-success);background:var(--hvl-success-bg);letter-spacing:.02em;border-radius:999px;margin-top:.3rem;padding:.1rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.course-list-empty{color:var(--hvl-muted);padding:1.25rem 1rem;font-size:.875rem;font-style:italic}.detail-panel{min-width:0}.course-search-wrapper{position:relative}.course-suggestions{z-index:10;background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:4px;max-height:260px;margin:.25rem 0 0;padding:.25rem 0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.course-suggestion-item{margin:0}.course-suggestion-btn{all:unset;box-sizing:border-box;cursor:pointer;width:100%;color:var(--hvl-text);align-items:center;gap:.6rem;padding:.5rem .75rem;font-size:.875rem;transition:background .1s;display:flex}.course-suggestion-btn:hover,.course-suggestion-item.highlighted .course-suggestion-btn{background:var(--hvl-blue-light)}.course-suggestion-btn.active{background:var(--hvl-bg-teal)}.suggestion-code{color:var(--hvl-navy);flex-shrink:0;min-width:70px;font-weight:700}.suggestion-name{color:var(--hvl-text);flex:1}.course-analyzed-badge{color:var(--hvl-success);background:var(--hvl-success-bg);border-radius:999px;flex-shrink:0;padding:.1rem .4rem;font-size:.72rem;font-weight:700}.detail-empty{border:1px dashed var(--hvl-blue-border);color:var(--hvl-muted);text-align:center;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:4rem 2rem;display:flex}.detail-empty-icon{font-size:2.5rem;line-height:1}.detail-empty p{margin:0;font-size:.95rem}.objectives-preview{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;padding:1.5rem}.objectives-preview h2{margin-bottom:.2rem;font-size:1.1rem}.detail-course-name{color:var(--hvl-muted);margin:0 0 .75rem;font-size:.9rem}.objective-group{margin-bottom:1rem}.objective-category{text-transform:uppercase;letter-spacing:.05em;color:var(--hvl-muted);margin:0 0 .25rem 1rem;font-size:.8rem;font-weight:700}.objectives-list{margin:0;padding:0;list-style:none}.objective-item{color:#333;border-bottom:1px solid #f0f0f0;padding:.75rem 1rem;font-size:.95rem;line-height:1.5}.objective-item:last-child{border-bottom:none}.analyze-btn{background:var(--hvl-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;align-items:center;margin-top:1rem;padding:.7rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s;display:inline-flex}.analyze-btn:hover{background:var(--hvl-navy)}.analyze-btn:disabled{cursor:not-allowed;background:#bbe9ef}.analysis-detail{background:#fafafa;border-left:3px solid #ddd;border-radius:0 6px 6px 0;margin-top:.5rem;padding:.6rem .75rem}.analysis-detail-header{justify-content:space-between;align-items:flex-start;display:flex}.edit-btn{color:#555;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;flex-shrink:0;padding:.25rem .65rem;font-size:.75rem;font-weight:600;transition:all .15s}.edit-btn:hover{border-color:var(--hvl-blue);color:var(--hvl-blue)}.edit-controls{flex-wrap:wrap;gap:1rem;margin:.5rem 0;display:flex}.edit-controls label{color:#555;flex-direction:column;gap:.2rem;font-size:.75rem;font-weight:600;display:flex}.edit-controls select{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:.3rem .5rem;font-size:.8rem}.edit-controls select:focus{border-color:var(--hvl-blue);outline:none}.edit-controls input[type=number]{background:#fff;border:1px solid #ccc;border-radius:4px;width:5rem;padding:.3rem .5rem;font-size:.8rem}.edit-controls input[type=number]:focus{border-color:var(--hvl-blue);outline:none}.analysis-reasoning{color:#555;margin:.35rem 0 0;font-size:.8rem;line-height:1.45}.analysis-reasoning strong{color:#333}.legend-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.legend-buttons{flex-shrink:0;gap:.5rem;display:flex}.analyzed-date{color:#666;margin:0 0 1rem;font-size:.85rem}.analysis-tags{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;display:flex}.bloom-tag{border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.bloom-remembering{background:var(--hvl-blue-light);color:var(--hvl-navy)}.bloom-understanding{background:var(--hvl-success-bg);color:var(--hvl-success)}.classify-pending-drawer{background:#fffde7;border:1px solid #ffe082;border-radius:8px;margin-bottom:1.25rem;overflow:hidden}.classify-pending-drawer-toggle{cursor:pointer;color:#6d4c00;text-align:left;background:0 0;border:none;align-items:center;gap:.4rem;width:100%;padding:.6rem 1rem;font-size:.9rem;font-weight:600;display:flex}.classify-pending-drawer-toggle:hover{background:#fff8e1}.classify-pending-drawer-icon{text-align:center;width:1rem;font-size:.85rem}.classify-pending-drawer-count{color:#fff;background:#f57f17;border-radius:999px;justify-content:center;align-items:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;font-size:.75rem;font-weight:700;display:inline-flex}.classify-pending-drawer-list{gap:.25rem;margin:0;padding:0 .5rem .5rem;list-style:none;display:grid}.classify-pending-drawer-item{cursor:pointer;text-align:left;background:#fff;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.45rem .75rem;font-size:.84rem;transition:all .15s;display:flex}.classify-pending-drawer-item:hover{background:var(--hvl-blue-light);border-color:var(--hvl-blue-border)}.classify-program-section{margin-bottom:1.5rem}.classify-program-section h2{margin-bottom:.5rem}.classify-program-list{flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.classify-program-option{cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;padding:.4rem .75rem;font-size:.82rem;transition:all .15s}.classify-program-option:hover{background:var(--hvl-blue-light);border-color:var(--hvl-blue-border)}.classify-program-option.selected{background:var(--hvl-blue-light);border-color:var(--hvl-blue);color:var(--hvl-navy);font-weight:600}.classify-program-courses{margin-top:.75rem}.classify-program-courses-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.classify-program-courses-header label{font-size:.9rem;font-weight:600}.classify-select-all-btn{cursor:pointer;color:var(--hvl-navy);background:0 0;border:1px solid #ccc;border-radius:4px;padding:.25rem .6rem;font-size:.78rem}.classify-select-all-btn:hover{background:var(--hvl-blue-light)}.classify-program-courses-list{gap:.3rem;max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.classify-program-course-option{cursor:pointer;text-align:left;background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:.5rem;width:100%;padding:.45rem .75rem;font-size:.85rem;transition:all .15s;display:flex}.classify-program-course-option:hover{background:var(--hvl-blue-light);border-color:var(--hvl-blue-border)}.classify-program-course-option.selected{background:var(--hvl-blue-light);border-color:var(--hvl-blue)}.classify-course-checkbox{font-size:1rem;line-height:1}.classify-course-meta{color:#888;margin-left:auto;font-size:.78rem}.classify-batch-btn-row{gap:.5rem;margin-top:.75rem;display:flex}.classify-batch-btn{background:var(--hvl-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.2rem;font-size:.88rem;font-weight:600;transition:background .15s}.classify-batch-btn:hover:not(:disabled){background:var(--hvl-navy)}.classify-batch-btn:disabled{opacity:.6;cursor:not-allowed}.classify-cancel-btn{color:#c62828;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:6px;padding:.5rem 1rem;font-size:.88rem;font-weight:600}.classify-cancel-btn:hover{background:#ffebee}.classify-batch-progress{margin-top:.75rem}.classify-batch-bar{background:#e0e0e0;border-radius:3px;height:6px;overflow:hidden}.classify-batch-fill{background:var(--hvl-blue);border-radius:3px;height:100%;transition:width .3s}.classify-batch-status{color:#555;margin-top:.3rem;font-size:.82rem}.classify-batch-failed{color:#c62828;font-weight:600}.classify-batch-done{color:#2e7d32;background:#e8f5e9;border-radius:6px;margin-top:.5rem;padding:.5rem .75rem;font-size:.85rem}.classify-no-courses{color:#888;font-size:.88rem;font-style:italic}.classify-page .mapping-classified-badge{color:#2e7d32;vertical-align:middle;background:#e8f5e9;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.classify-page .mapping-not-classified-badge{color:#e65100;vertical-align:middle;background:#fff3e0;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.classify-pending-badge{color:#f57f17;vertical-align:middle;background:#fff8e1;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.classify-partial-badge{color:#1565c0;vertical-align:middle;background:#e3f2fd;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.classify-pending-count{color:#f57f17;background:#fff8e1;border-radius:.75rem;margin-left:.5rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.classify-course-row{align-items:center;gap:.4rem;display:flex}.classify-course-row .classify-program-course-option{flex:1;min-width:0}.classify-review-btn{color:#e65100;cursor:pointer;white-space:nowrap;background:#fff8e1;border:1px solid #f57f17;border-radius:5px;flex-shrink:0;padding:.3rem .65rem;font-size:.78rem;font-weight:600;transition:all .15s}.classify-review-btn:hover{background:#fff3e0;border-color:#e65100}.classify-program-courses-list li.pending-review{border-left:3px solid #f57f17;padding-left:.25rem}.bloom-evaluating{background:var(--hvl-error-bg);color:var(--hvl-error)}.bloom-secondary,.bloom-pending{color:#888;background:#f5f5f5}.detail-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.human-edited-badge{text-transform:uppercase;letter-spacing:.04em;color:#856404;background:#fff3cd;border:1px solid #ffc107;border-radius:999px;padding:.15rem .55rem;font-size:.65rem;font-weight:700;display:inline-block}.human-edited-reasoning{color:#856404;font-style:italic}.analysis-loading{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);color:var(--hvl-navy);border-radius:6px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;font-size:.9rem;display:flex}.analysis-loading p{margin:0}.analysis-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem;animation:.8s linear infinite spin}.analysis-error{background:var(--hvl-error-bg);color:var(--hvl-error);border:1px solid #f5c6c2;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.analysis-error p{margin:0}.classify-back-btn{cursor:pointer;border:1px solid var(--hvl-blue-border,#cbd5e1);background:var(--hvl-white,#fff);color:var(--hvl-navy,#1e293b);border-radius:4px;align-items:center;gap:.3rem;margin-bottom:.75rem;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:background .15s;display:inline-flex}.classify-back-btn:hover{background:var(--hvl-bg-subtle,#f1f5f9)}.classify-page .program-code{color:#888;font-size:.9rem;font-weight:600}.course-item{border-bottom:1px solid var(--hvl-blue-border,#d6e4f0)}.course-item:last-child{border-bottom:none}.course-item-button{all:unset;cursor:pointer;box-sizing:border-box;text-align:left;width:100%;color:var(--hvl-navy,#003466);justify-content:space-between;align-items:center;padding:.65rem .9rem;font-size:.875rem;font-weight:700;transition:background .1s;display:flex}.course-item-button:hover{background:var(--hvl-bg-subtle,#f5f7fa)}.course-item.selected .course-item-button{background:var(--hvl-blue-light,#e8f0fe);border-left:3px solid var(--hvl-blue,#0077c2);padding-left:calc(.9rem - 3px)}.course-item-button:focus-visible{outline:2px solid var(--hvl-blue,#0077c2);outline-offset:-2px}.course-analyzed-badge{color:var(--hvl-success,#1a7a3a);font-size:.85rem}.framework-page{max-width:900px;margin:0 auto;padding:2rem 1rem}.framework-page h1{margin-bottom:.25rem}.framework-subtitle{color:#666;margin-bottom:2rem}.framework-upload-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.framework-upload-section h2{margin-bottom:1rem;font-size:1.15rem}.upload-dropzone{border:2px dashed var(--hvl-blue-border);text-align:center;cursor:pointer;background:#f6f8f9;border-radius:10px;margin-bottom:1rem;padding:2rem;transition:all .15s}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--hvl-blue);background:var(--hvl-blue-light)}.upload-dropzone p{color:#666;margin:.5rem 0 0;font-size:.9rem}.upload-dropzone .upload-icon{margin-bottom:.25rem;font-size:2rem}.upload-dropzone input[type=file]{display:none}.selected-file{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.selected-file span{color:var(--hvl-navy);font-size:.9rem;font-weight:600}.selected-file button{all:unset;cursor:pointer;color:var(--hvl-navy);border-radius:50%;padding:.15rem .4rem;font-size:.8rem;transition:background .1s}.selected-file button:hover{background:#008aaf26}.upload-btn{background:var(--hvl-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;padding:.7rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s;display:inline-flex}.upload-btn:hover{background:#006680}.upload-btn:disabled{cursor:not-allowed;background:#bbe9ef}.extraction-loading{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);color:var(--hvl-navy);border-radius:8px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;font-size:.9rem;display:flex}.extraction-loading p{margin:0}.extraction-progress{flex-direction:column;gap:.35rem;width:100%;margin-top:.5rem;display:flex}.extraction-progress-bar{background:var(--hvl-blue-border);border-radius:999px;width:100%;height:8px;overflow:hidden}.extraction-progress-fill{background:var(--hvl-blue);border-radius:999px;height:100%;transition:width .4s}.extraction-progress-label{color:var(--hvl-navy);font-size:.8rem;font-weight:600}.page-selection h3{color:var(--hvl-navy);margin:0;font-size:1rem}.page-selection-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.page-selection-actions{gap:.5rem;display:flex}.page-selection-actions button{border:1px solid var(--hvl-blue-border);color:var(--hvl-navy);cursor:pointer;background:0 0;border-radius:6px;padding:.25rem .7rem;font-size:.8rem}.page-selection-actions button:hover{background:var(--hvl-blue-light)}.page-section-list{border:1px solid var(--hvl-blue-border);border-radius:8px;max-height:320px;margin:0 0 1rem;padding:0;list-style:none;overflow-y:auto}.page-section-list li+li{border-top:1px solid var(--hvl-blue-border)}.page-section-list li{align-items:center;gap:.5rem;padding-right:.5rem;display:flex}.page-section-list label{cursor:pointer;flex:1;align-items:center;gap:.6rem;min-width:0;padding:.5rem .8rem;font-size:.9rem;display:flex}.page-section-title{flex:1;min-width:0}.page-section-pages{color:var(--hvl-blue);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.8rem}.page-section-pages:hover{background:var(--hvl-blue-light);text-decoration:underline}.page-selection-body{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.25rem;margin-bottom:.5rem;display:grid}.page-selection-source{color:var(--hvl-muted);margin:0 0 .5rem;font-size:.8rem}.page-range-input{color:var(--hvl-navy);flex-direction:column;gap:.3rem;margin-bottom:.75rem;font-size:.9rem;font-weight:600;display:flex}.page-range-input input{border:1px solid var(--hvl-blue-border);border-radius:6px;padding:.45rem .6rem;font-weight:400}.page-preview{flex-direction:column;gap:.4rem;display:flex}.page-preview-nav{color:var(--hvl-navy);justify-content:space-between;align-items:center;font-size:.85rem;font-weight:600;display:flex}.page-preview-nav label{align-items:center;gap:.4rem;font-weight:400;display:inline-flex}.page-preview-nav input{border:1px solid var(--hvl-blue-border);border-radius:6px;width:4.5rem;padding:.2rem .4rem}.page-preview iframe{border:1px solid var(--hvl-blue-border);background:#f4f4f4;border-radius:8px;width:100%;height:520px}@media (width<=900px){.page-selection-body{grid-template-columns:1fr}}.page-estimate{color:var(--hvl-muted);margin:0 0 1rem;font-size:.875rem}.page-estimate--warning{color:#b3261e}.extraction-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem;animation:.8s linear infinite fw-spin}@keyframes fw-spin{to{transform:rotate(360deg)}}.extraction-error{background:var(--hvl-error-bg);color:var(--hvl-error);border:1px solid #f5c6c2;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.extraction-error p{margin:0}.extraction-success{background:var(--hvl-success-bg);color:var(--hvl-success);border:1px solid #b7e1cd;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.extraction-success p{margin:0}.frameworks-overview{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.frameworks-overview h2{margin-bottom:1rem;font-size:1.15rem}.frameworks-list{margin:0;padding:0;list-style:none}.framework-item{cursor:pointer;border-bottom:1px solid #f0f0f0;padding:1rem;transition:background .1s}.framework-item:last-child{border-bottom:none}.framework-item:hover{background:#f6f8f9}.framework-item.selected{background:var(--hvl-blue-light);border-left:3px solid var(--hvl-blue)}.framework-item-header{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.framework-item-name{color:#333;font-size:1rem;font-weight:700}.framework-item-date{color:#888;font-size:.8rem}.framework-item-file{color:#666;margin-bottom:.25rem;font-size:.8rem}.framework-item-stats{color:#888;gap:1rem;font-size:.75rem;display:flex}.framework-stat{background:#f5f5f5;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;display:inline-flex}.framework-stat--accepted{background:var(--hvl-success-bg);color:var(--hvl-success);font-weight:600}.framework-stat--rejected{background:var(--hvl-error-bg);color:var(--hvl-error);font-weight:600}.framework-stat--pending{color:#856404;background:#fff3cd;font-weight:600}.framework-processing-badge{color:#856404;background:#fff3cd;border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.no-frameworks{text-align:center;color:#888;padding:2rem;font-size:.9rem}.framework-detail{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem}.framework-detail h2{margin-bottom:.25rem;font-size:1.15rem}.framework-detail-meta{color:#666;margin-bottom:1rem;font-size:.85rem}.framework-stats-bar{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.framework-stats-bar .stat-card{text-align:center;background:#f5f7fa;border-radius:8px;padding:.6rem 1rem}.stat-card .stat-value{color:var(--hvl-blue);font-size:1.3rem;font-weight:700}.stat-card .stat-label{color:#666;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.ka-list{margin:0;padding:0;list-style:none}.ka-item{border:1px solid #eee;border-radius:8px;margin-bottom:1rem;overflow:hidden}.ka-header{all:unset;cursor:pointer;color:#333;box-sizing:border-box;background:#f9fafb;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;font-size:.95rem;font-weight:700;transition:background .1s;display:flex}.ka-header:hover{background:#eef2f7}.ka-toggle{color:#888;flex-shrink:0;font-size:.7rem;transition:transform .15s}.ka-toggle.open{transform:rotate(90deg)}.ka-content{padding:0 1rem .75rem}.ka-description{color:#666;border-left:2px solid #e0e0e0;margin:.5rem 0;padding-left:.5rem;font-size:.85rem}.ku-list{margin:.5rem 0 0 1rem;padding:0;list-style:none}.ku-item{background:#f6f8f9;border:1px solid #eef2f7;border-radius:6px;margin-bottom:.5rem;padding:.5rem .75rem}.ku-name{color:#444;font-size:.9rem;font-weight:600}.ku-description{color:#666;margin:.2rem 0 0;font-size:.8rem}.topic-list{margin:.4rem 0 0 .75rem;padding:0;list-style:none}.topic-item{color:#555;padding:.2rem 0;font-size:.8rem}.topic-item:before{content:"";color:#bbb;margin-right:0}.back-btn{all:unset;cursor:pointer;color:var(--hvl-blue);margin-bottom:1rem;font-size:.85rem;font-weight:600;display:inline-block}.back-btn:hover{text-decoration:underline}.ka-header-row,.ku-header-row{justify-content:space-between;align-items:center;display:flex}.ka-header-row .ka-header{flex:1;min-width:0}.ku-header-row{gap:.5rem}.ku-header-row .ku-name{flex:1}.item-actions{opacity:0;flex-shrink:0;gap:.25rem;transition:opacity .15s;display:flex}.ka-header-row:hover .item-actions,.ku-header-row:hover .item-actions,.topic-content:hover .item-actions{opacity:1}.edit-item-btn,.delete-item-btn{all:unset;cursor:pointer;border-radius:4px;padding:.15rem .35rem;font-size:.8rem;transition:background .1s}.edit-item-btn:hover{background:var(--hvl-blue-light)}.delete-item-btn:hover{background:var(--hvl-error-bg)}.edit-item-btn:disabled,.delete-item-btn:disabled{opacity:.4;cursor:not-allowed}.inline-edit{align-items:center;gap:.35rem;display:inline-flex}.inline-edit input{border:1px solid var(--hvl-blue-border);border-radius:4px;min-width:200px;padding:.25rem .5rem;font-size:.9rem}.save-edit-btn,.cancel-edit-btn{all:unset;cursor:pointer;border-radius:4px;padding:.2rem .4rem;font-size:.85rem;font-weight:600}.save-edit-btn{color:var(--hvl-success)}.save-edit-btn:hover{background:var(--hvl-success-bg)}.cancel-edit-btn{color:var(--hvl-error)}.cancel-edit-btn:hover{background:var(--hvl-error-bg)}.save-edit-btn:disabled{opacity:.4;cursor:not-allowed}.topic-content{justify-content:space-between;align-items:center;width:100%;display:flex}.human-edited-badge{color:#856404;vertical-align:middle;background:#fff3cd;border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem;font-weight:600;display:inline-block}.accept-btn,.reject-btn{cursor:pointer;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s}.accept-btn{background:var(--hvl-success);color:#fff}.accept-btn:hover{background:#1a8754}.reject-btn{background:var(--hvl-error);color:#fff}.reject-btn:hover{background:#b92d2d}.accept-btn:disabled,.reject-btn:disabled{opacity:.5;cursor:not-allowed}.review-status-badge{border-radius:999px;padding:.25rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}.review-status-badge.accepted{background:var(--hvl-success-bg);color:var(--hvl-success)}.review-status-badge.rejected{background:var(--hvl-error-bg);color:var(--hvl-error)}.mapping-page{max-width:960px;margin:0 auto;padding:2rem 1rem}.mapping-page h1{margin-bottom:.25rem}.mapping-subtitle{color:#666;margin-bottom:2rem}.mapping-selection-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.mapping-selection-section h2{margin-bottom:1rem;font-size:1.15rem}.mapping-field{margin-bottom:1.25rem}.mapping-field label{color:#333;margin-bottom:.35rem;font-size:.9rem;font-weight:600;display:block}.mapping-search-wrapper{position:relative}.mapping-search-input{box-sizing:border-box;border:1px solid #ccc;border-radius:8px;width:100%;padding:.6rem .75rem;font-size:.9rem;transition:border-color .15s}.mapping-search-input:focus{border-color:var(--hvl-blue);outline:none;box-shadow:0 0 0 2px #008aaf26}.mapping-suggestions{z-index:10;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 8px 8px;max-height:200px;margin:0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000014}.mapping-suggestions li{cursor:pointer;padding:.5rem .75rem;font-size:.88rem;transition:background .1s}.mapping-suggestions li.disabled{opacity:.5;color:#999}.mapping-suggestions li.disabled strong{color:#999}.mapping-suggestions li:hover,.mapping-suggestions li.active{background:var(--hvl-blue-light)}.mapping-selected-course{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.mapping-selected-course span{color:var(--hvl-navy);font-size:.9rem;font-weight:600}.mapping-selected-course button{all:unset;cursor:pointer;color:var(--hvl-navy);border-radius:50%;padding:.15rem .4rem;font-size:.8rem;transition:background .1s}.mapping-selected-course button:hover{background:#008aaf26}.mapping-classified-badge{color:#2e7d32;vertical-align:middle;background:#e8f5e9;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.mapping-not-classified-badge{color:#e65100;vertical-align:middle;background:#fff3e0;border-radius:.75rem;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.mapping-classification-warning{color:#6d4c00;background:#fff8e1;border:1px solid #ffe082;border-radius:.5rem;margin-top:.6rem;padding:.65rem 1rem;font-size:.85rem;line-height:1.5}.mapping-classification-warning a{color:#1565c0;font-weight:600;text-decoration:none}.mapping-classification-warning a:hover{text-decoration:underline}.mapping-framework-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.mapping-framework-card{all:unset;cursor:pointer;box-sizing:border-box;background:#f9fafb;border:1px solid #e0e0e0;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:.65rem 1rem;transition:border-color .12s,background .12s;display:flex}.mapping-framework-card:hover{border-color:var(--hvl-blue-border);background:var(--hvl-blue-light)}.mapping-framework-card.selected{border-color:var(--hvl-blue);background:var(--hvl-blue-light);box-shadow:0 0 0 2px #008aaf26}.mapping-framework-name{color:#333;font-size:.9rem;font-weight:600}.mapping-framework-stats{color:#888;flex-shrink:0;font-size:.78rem}.mapping-run-btn{background:var(--hvl-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;padding:.7rem 1.5rem;font-size:1rem;font-weight:600;transition:background .15s;display:inline-flex}.mapping-run-btn:hover{background:#006680}.mapping-run-btn:disabled{cursor:not-allowed;background:#bbe9ef}.mapping-rerun-btn{background:var(--hvl-navy);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s;display:inline-flex}.mapping-rerun-btn:hover{background:var(--hvl-navy-dark)}.mapping-rerun-btn:disabled{opacity:.5;cursor:not-allowed}.mapping-loading{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);color:var(--hvl-navy);border-radius:8px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1rem;font-size:.9rem;display:flex}.mapping-loading p{margin:0}.mapping-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;flex-shrink:0;width:1.25rem;height:1.25rem;animation:.8s linear infinite mapping-spin}@keyframes mapping-spin{to{transform:rotate(360deg)}}.mapping-error{background:var(--hvl-error-bg);color:var(--hvl-error);border:1px solid #f5c6c2;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.mapping-error p{margin:0}.mapping-results{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-top:2rem;padding:1.5rem}.mapping-results h2{margin-bottom:.25rem;font-size:1.15rem}.mapping-results-meta{color:#666;margin-bottom:1rem;font-size:.85rem}.mapping-summary-bar{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.mapping-stat-card{text-align:center;background:#f5f7fa;border-radius:8px;padding:.6rem 1rem}.mapping-stat-card .stat-value{color:var(--hvl-blue);font-size:1.3rem;font-weight:700}.mapping-stat-card .stat-label{color:#666;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.mapping-outcome-list{margin:0;padding:0;list-style:none}.mapping-outcome-item{border:1px solid #eee;border-radius:8px;margin-bottom:1rem;overflow:hidden}.mapping-outcome-header-static{color:#333;box-sizing:border-box;background:#f9fafb;border-bottom:1px solid #eee;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;font-size:.9rem;font-weight:600;display:flex}.mapping-outcome-category{background:var(--hvl-blue-light);color:var(--hvl-navy);border-radius:999px;flex-shrink:0;padding:.1rem .45rem;font-size:.7rem;font-weight:600}.mapping-outcome-content{padding:.5rem 1rem .75rem}.mapping-no-matches{text-align:center;color:#888;padding:1rem;font-size:.85rem;font-style:italic}.mapping-ka-list{margin:.5rem 0 0;padding:0;list-style:none}.mapping-ka-item{background:#f6f8f9;border:1px solid #eef2f7;border-radius:6px;margin-bottom:.5rem;padding:.5rem .75rem}.mapping-ka-name{color:#444;font-size:.88rem;font-weight:600}.mapping-ka-score{color:#888;margin-left:.5rem;font-size:.75rem}.mapping-ka-reasoning{color:#666;border-left:2px solid #e0e0e0;margin:.2rem 0 .4rem;padding-left:.5rem;font-size:.8rem}.mapping-ku-list{margin:.25rem 0 0 1rem;padding:0;list-style:none}.mapping-ku-item{background:#f5f7fa;border-radius:5px;margin-bottom:.35rem;padding:.35rem .6rem}.mapping-ku-name{color:#555;font-size:.82rem;font-weight:600}.mapping-ku-score{color:#888;margin-left:.4rem;font-size:.72rem}.mapping-ku-reasoning{color:#777;margin:.15rem 0 .3rem;font-size:.78rem}.mapping-topic-list{margin:.2rem 0 0 .75rem;padding:0;list-style:none}.mapping-topic-item{color:#555;padding:.15rem 0;font-size:.78rem}.mapping-topic-item:before{content:"•";color:#bbb;margin-right:.4rem}.mapping-topic-score{color:#888;margin-left:.3rem;font-size:.7rem}.score-high{color:var(--hvl-success);font-weight:600}.score-medium{color:#e67e22;font-weight:600}.score-low{color:var(--hvl-error)}.mapping-two-panel{grid-template-columns:1fr 1.5fr;gap:1rem;min-height:0;display:grid}@media (width<=700px){.mapping-two-panel{grid-template-columns:1fr}}.mapping-panel-left{border-right:1px solid #eee;padding-right:1rem}@media (width<=700px){.mapping-panel-left{border-bottom:1px solid #eee;border-right:none;padding-bottom:.75rem;padding-right:0}}.mapping-panel-right{min-width:0}.mapping-panel-title{text-transform:uppercase;letter-spacing:.04em;color:#888;margin:0 0 .5rem;font-size:.78rem;font-weight:600}.mapping-panel-right-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.mapping-panel-right-header .mapping-panel-title{margin-bottom:0}.mapping-outcome-detail{padding:0}.mapping-outcome-category-label{background:var(--hvl-blue-light);color:var(--hvl-navy);border-radius:999px;margin-bottom:.35rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.mapping-outcome-desc{color:#333;margin:0 0 .4rem;font-size:.88rem;line-height:1.4}.mapping-outcome-bloom{color:#888;margin:0;font-size:.78rem}.mapping-add-btn{all:unset;cursor:pointer;color:var(--hvl-blue);border:1px solid var(--hvl-blue);border-radius:6px;padding:.2rem .6rem;font-size:.78rem;font-weight:600;transition:background .12s}.mapping-add-btn:hover{background:var(--hvl-blue-light)}.mapping-remove-btn{all:unset;cursor:pointer;color:#999;border-radius:4px;flex-shrink:0;padding:.15rem .35rem;font-size:.7rem;transition:color .1s,background .1s}.mapping-remove-btn:hover{color:var(--hvl-error);background:var(--hvl-error-bg)}.mapping-ka-header-row,.mapping-ku-header-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.mapping-dialog-overlay{z-index:100;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mapping-dialog{background:#fff;border-radius:12px;width:min(480px,90vw);padding:1.5rem;box-shadow:0 8px 32px #0000002e}.mapping-dialog h3{margin:0 0 .25rem;font-size:1.1rem}.mapping-dialog-desc{color:#666;margin:0 0 1rem;font-size:.85rem}.mapping-dialog-field{margin-bottom:1rem}.mapping-dialog-field label{color:#333;margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.mapping-dialog-field select{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:8px;width:100%;padding:.55rem .7rem;font-size:.88rem}.mapping-dialog-field select:focus{border-color:var(--hvl-blue);outline:none;box-shadow:0 0 0 2px #008aaf26}.mapping-dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.mapping-dialog-cancel{all:unset;cursor:pointer;color:#666;border-radius:8px;padding:.5rem 1rem;font-size:.88rem;transition:background .1s}.mapping-dialog-cancel:hover{background:#f2f2f2}.mapping-dialog-confirm{all:unset;cursor:pointer;background:var(--hvl-blue);color:#fff;border-radius:8px;padding:.5rem 1.2rem;font-size:.88rem;font-weight:600;transition:background .12s}.mapping-dialog-confirm:hover{background:#006680}.mapping-dialog-confirm:disabled{cursor:not-allowed;background:#bbe9ef}.mapping-relevance-help{background:var(--hvl-bg-subtle);border-radius:8px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.9rem}.mapping-relevance-help>summary{cursor:pointer;min-height:28px;font-weight:600}.mapping-relevance-help p{margin:.4rem 0}.mapping-dialog-field input[type=number]{width:6rem}.cbm{background:var(--hvl-white);border:1px solid #e0e0e0;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.cbm-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.cbm-head h2{margin:0;font-size:1.1rem}.cbm-actions{flex-wrap:wrap;gap:.75rem;display:flex}.cbm-link{color:var(--hvl-blue);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.cbm-link:disabled{color:var(--hvl-muted);cursor:default}.cbm-check{color:var(--hvl-muted);align-items:center;gap:.4rem;margin:.6rem 0;font-size:.85rem;display:flex}.cbm-list{border:1px solid #eee;border-radius:8px;max-height:280px;margin:0;padding:0;list-style:none;overflow-y:auto}.cbm-list li+li{border-top:1px solid #f2f2f2}.cbm-list label{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.875rem;display:flex}.cbm-list li.disabled label{color:var(--hvl-muted);cursor:default}.cbm-name{flex:160px;min-width:0}.cbm-badge{white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600}.cbm-badge--mapped{background:var(--hvl-success-bg);color:var(--hvl-success)}.cbm-badge--not_mapped{color:#555;background:#f1f1f1}.cbm-badge--rejected{background:var(--hvl-error-bg);color:var(--hvl-error)}.cbm-badge--warn{color:#8a5300;background:#fff4e0}.cbm-badge--busy{background:var(--hvl-bg-teal);color:var(--hvl-navy)}.cbm-error{color:var(--hvl-error);font-size:.875rem}.cbm-progress{align-items:center;gap:.75rem;margin-top:.75rem;font-size:.85rem;display:flex}.cbm-bar{background:#eee;border-radius:4px;flex:1;height:8px;overflow:hidden}.cbm-bar-fill{background:var(--hvl-blue);height:100%;transition:width .3s}.cbm-run{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.9rem;display:flex}.cbm-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.1rem;font-size:.9rem}.cbm-btn:disabled{opacity:.5;cursor:default}.cbm-btn--secondary{background:var(--hvl-white);color:var(--hvl-navy);border:1px solid var(--hvl-navy)}.cbm-hint{color:var(--hvl-muted);font-size:.8rem}.rs{align-items:center;gap:.35rem;margin-left:.4rem;display:inline-flex}.rs-score{font:inherit;cursor:pointer;background:0 0;border:1px dashed;border-radius:999px;min-height:28px;padding:0 .5rem;font-size:.8rem;font-weight:700}.rs-score:hover:not(:disabled){border-style:solid}.rs-score:disabled{cursor:default;border-style:solid}.rs-ai{color:var(--hvl-muted);font-size:.75rem}.rs-edit{flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:.4rem;display:inline-flex}.rs-edit input{width:4.5rem;min-height:32px;font:inherit;border:1px solid #c3cfd3;border-radius:6px;padding:0 .4rem}.rs-save,.rs-cancel{font:inherit;cursor:pointer;border-radius:6px;min-height:32px;padding:0 .6rem;font-size:.8rem;font-weight:600}.rs-save{border:1px solid var(--hvl-navy);background:var(--hvl-navy);color:var(--hvl-white)}.rs-cancel{background:var(--hvl-white);color:var(--hvl-text);border:1px solid #c3cfd3}.rs-error{color:var(--hvl-error);font-size:.8rem}:root{--fc-covered:var(--hvl-success);--fc-covered-bg:var(--hvl-success-bg);--fc-partial:#b26a00;--fc-partial-bg:#fff4e0;--fc-uncovered:var(--hvl-error);--fc-uncovered-bg:var(--hvl-error-bg)}.fc-page{max-width:1040px;margin:0 auto;padding:2rem 1rem}.fc-header{align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.fc-header-icon{color:var(--hvl-white);background:var(--hvl-navy);border-radius:12px;flex-shrink:0;padding:.5rem;font-size:2.5rem}.fc-header h1{margin:0 0 .25rem}.fc-subtitle{color:var(--hvl-muted);max-width:70ch;margin:0}.fc-controls{background:var(--hvl-white);border:1px solid #e0e0e0;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.fc-scope{border:1px solid var(--hvl-blue);border-radius:999px;margin-bottom:1rem;display:inline-flex;overflow:hidden}.fc-scope-btn{color:var(--hvl-blue);cursor:pointer;background:0 0;border:none;padding:.4rem 1rem;font-size:.9rem}.fc-scope-btn.active{background:var(--hvl-blue);color:var(--hvl-white)}.fc-fields{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.25rem;display:flex}.fc-field{color:#333;flex-direction:column;flex:260px;gap:.35rem;min-width:0;font-size:.9rem;font-weight:600;display:flex}.fc-field--narrow{flex:0 200px}.fc-field select{background:var(--hvl-white);border:1px solid #ccc;border-radius:8px;max-width:100%;padding:.55rem .6rem;font-size:.9rem}.fc-check{align-items:center;gap:.4rem;padding-bottom:.55rem;font-size:.9rem;display:flex}.fc-error,.fc-warning{border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.fc-error{background:var(--hvl-error-bg);color:var(--hvl-error)}.fc-warning{background:var(--fc-partial-bg);color:#6b4200}.fc-empty,.fc-loading,.fc-muted{color:var(--hvl-muted)}.fc-summary{flex-wrap:wrap;align-items:stretch;gap:.75rem;margin-bottom:1rem;display:flex}.fc-stat{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-border);border-radius:10px;min-width:150px;padding:.75rem 1rem}.fc-stat--primary{background:var(--hvl-navy);border-color:var(--hvl-navy);color:var(--hvl-white)}.fc-stat-value{font-size:1.6rem;font-weight:700;line-height:1.2}.fc-stat-sub{opacity:.8;font-size:1rem;font-weight:500}.fc-stat-label{opacity:.85;font-size:.8rem}.fc-download{align-self:center;margin-left:auto}.fc-missing{color:#6b4200;margin-bottom:1rem;font-size:.9rem}.fc-missing summary{cursor:pointer;margin-bottom:.4rem}.fc-filter{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.fc-filter-btn{background:var(--hvl-white);cursor:pointer;border:1px solid #ccc;border-radius:999px;padding:.3rem .8rem;font-size:.85rem}.fc-filter-btn.active{border-color:var(--hvl-navy);background:var(--hvl-navy);color:var(--hvl-white)}.fc-areas,.fc-units,.fc-evidence,.fc-topics{margin:0;padding:0;list-style:none}.fc-area{border:1px solid #e0e0e0;border-left:4px solid var(--fc-uncovered);background:var(--hvl-white);border-radius:10px;margin-bottom:.6rem}.fc-area--covered{border-left-color:var(--fc-covered)}.fc-area--partial{border-left-color:var(--fc-partial)}.fc-area>details>summary{cursor:pointer;padding:.75rem 1rem;list-style:none}.fc-area>details>summary::-webkit-details-marker{display:none}.fc-area-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.fc-area-name{font-weight:600}.fc-area-meta{color:var(--hvl-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.fc-bar{background:var(--fc-uncovered-bg);border-radius:4px;height:8px;margin:.5rem 0 .35rem;overflow:hidden}.fc-bar-fill{background:var(--fc-covered);height:100%}.fc-chip{white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.fc-chip--covered{background:var(--fc-covered-bg);color:var(--fc-covered)}.fc-chip--partial{background:var(--fc-partial-bg);color:var(--fc-partial)}.fc-chip--uncovered{background:var(--fc-uncovered-bg);color:var(--fc-uncovered)}.fc-course-chips{flex-wrap:wrap;gap:.25rem;display:inline-flex}.fc-course-chip{background:var(--hvl-bg-teal);color:var(--hvl-navy);border-radius:4px;padding:.05rem .4rem;font-size:.72rem}.fc-units{border-top:1px solid #eee;padding:.25rem 1rem .75rem}.fc-unit summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem 0;font-size:.9rem;display:flex}.fc-unit-name{flex:200px;min-width:0}.fc-unit-topics,.fc-unit-score{color:var(--hvl-muted);font-size:.78rem}.fc-dot{background:var(--fc-uncovered);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.fc-dot--covered{background:var(--fc-covered)}.fc-dot--partial{background:var(--fc-partial)}.fc-unit-body{padding:0 0 .6rem 1.25rem;font-size:.85rem}.fc-unit-desc{color:var(--hvl-muted);margin:0 0 .4rem}.fc-evidence li{border-bottom:1px dashed #eee;grid-template-columns:auto auto 1fr;gap:.5rem;padding:.25rem 0;display:grid}.fc-evidence-course{color:var(--hvl-navy);font-weight:600}.fc-evidence-score{color:var(--hvl-muted)}.fc-topics li{align-items:center;gap:.4rem;padding:.15rem 0;display:flex}@media (width<=600px){.fc-download{margin-left:0}.fc-evidence li{grid-template-columns:auto 1fr}.fc-evidence-text{grid-column:1/-1}}.cc-page{--cc-ok:var(--hvl-success);--cc-ok-bg:var(--hvl-success-bg);--cc-partial:#b26a00;--cc-partial-bg:#fff4e0;--cc-missing:var(--hvl-error);--cc-missing-bg:var(--hvl-error-bg);max-width:1040px;margin:0 auto;padding:2rem 1rem}.cc-header{align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.cc-header-icon{color:var(--hvl-white);background:var(--hvl-orange-dark);border-radius:12px;flex-shrink:0;padding:.5rem;font-size:2.5rem}.cc-header h1{margin:0 0 .25rem}.cc-subtitle{color:var(--hvl-muted);max-width:72ch;margin:0}.cc-panel{background:var(--hvl-white);border:1px solid #e0e0e0;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.cc-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;display:flex}.cc-row+.cc-row,.cc-snapshot+.cc-row{margin-top:1rem}.cc-field{color:#333;flex-direction:column;gap:.35rem;min-width:0;font-size:.9rem;font-weight:600;display:flex}.cc-field--wide{flex:320px}.cc-field--narrow{flex:0 200px}.cc-field input:not([type=range]),.cc-field select{background:var(--hvl-white);box-sizing:border-box;border:1px solid #ccc;border-radius:8px;max-width:100%;padding:.55rem .6rem;font-size:.9rem}.cc-check{align-items:center;gap:.4rem;padding-bottom:.55rem;font-size:.875rem;display:flex}.cc-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.1rem;font-size:.9rem}.cc-btn:disabled{opacity:.5;cursor:default}.cc-btn--secondary{background:var(--hvl-white);color:var(--hvl-navy);border:1px solid var(--hvl-navy)}.cc-link{color:var(--hvl-blue);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.cc-snapshot{background:var(--hvl-bg-subtle);border-radius:8px;flex-direction:column;gap:.2rem;margin-top:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.cc-muted,.cc-loading{color:var(--hvl-muted);font-size:.85rem}.cc-error{color:var(--hvl-error);font-size:.875rem}.cc-summary{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.cc-stat{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-border);border-radius:10px;min-width:130px;padding:.75rem 1rem}.cc-stat--primary{background:var(--hvl-navy);border-color:var(--hvl-navy);color:var(--hvl-white)}.cc-stat-value{font-size:1.5rem;font-weight:700}.cc-stat-sub{opacity:.8;font-size:1rem}.cc-stat-label{opacity:.85;font-size:.8rem}.cc-criteria{background:var(--hvl-white);border:1px dashed #cfd8dc;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.5rem;margin-bottom:1rem;padding:.9rem 1rem;font-size:.875rem;display:flex}.cc-criteria>div:first-child{flex:360px}.cc-criteria-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cc-outcomes,.cc-evidence-col ul,.cc-unlinked ul{margin:0;padding:0;list-style:none}.cc-outcome{background:var(--hvl-white);border:1px solid #e0e0e0;border-left:4px solid var(--cc-missing);border-radius:10px;margin-bottom:.6rem}.cc-outcome--conformant{border-left-color:var(--cc-ok)}.cc-outcome--partial{border-left-color:var(--cc-partial)}.cc-outcome summary{cursor:pointer;padding:.75rem 1rem;list-style:none}.cc-outcome summary::-webkit-details-marker{display:none}.cc-outcome-head{align-items:flex-start;gap:.6rem;display:flex}.cc-outcome-num{color:var(--hvl-muted);min-width:1.5rem;font-weight:700}.cc-outcome-text{flex:1;min-width:0}.cc-chip{white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.cc-chip--conformant{background:var(--cc-ok-bg);color:var(--cc-ok)}.cc-chip--partial{background:var(--cc-partial-bg);color:var(--cc-partial)}.cc-chip--missing{background:var(--cc-missing-bg);color:var(--cc-missing)}.cc-dims{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0 2.1rem;display:flex}.cc-category{color:var(--hvl-muted);margin-right:.25rem;font-size:.75rem}.cc-dim{border-radius:4px;padding:.1rem .45rem;font-size:.75rem}.cc-dim.met{background:var(--cc-ok-bg);color:var(--cc-ok)}.cc-dim.unmet{background:var(--cc-missing-bg);color:var(--cc-missing)}.cc-evidence-grid{border-top:1px solid #eee;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:.75rem 1rem 1rem;font-size:.82rem;display:grid}.cc-evidence-col h4{margin:0 0 .4rem;font-size:.85rem}.cc-evidence-col li{overflow-wrap:anywhere;border-bottom:1px dashed #eee;flex-direction:column;padding:.25rem 0;display:flex}.cc-ev-score{color:var(--hvl-muted);font-size:.72rem}.cc-ev-reason{color:var(--hvl-muted);font-size:.75rem}.cc-unlinked{margin-top:1rem;font-size:.875rem}.cc-unlinked summary{cursor:pointer;color:#6b4200;margin-bottom:.5rem}.cc-unlinked li{padding:.2rem 0}.cc-kind{min-width:5.5rem;color:var(--hvl-muted);font-size:.72rem;display:inline-block}@media (width<=700px){.cc-evidence-grid{grid-template-columns:1fr}.cc-dims{margin-left:0}}.cc-help{color:#444;margin-top:.75rem;font-size:.85rem}.cc-help summary{cursor:pointer;color:var(--hvl-blue)}.cc-help ol{margin:.5rem 0;padding-left:1.25rem}.cc-connected{color:var(--hvl-success);justify-content:space-between;align-items:center;font-size:.9rem}.role-page-container{width:100%;max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.role-page-back{color:var(--hvl-blue);cursor:pointer;background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.85rem;font-weight:600}.role-page-back:hover{color:var(--hvl-navy)}.role-page-hero{border-bottom:1px solid var(--hvl-blue-border);margin-bottom:1.75rem;padding-bottom:1.25rem}.role-page-badge{background:var(--hvl-bg-teal);color:var(--hvl-navy);text-transform:uppercase;letter-spacing:.8px;border-radius:4px;align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.3rem .7rem;font-size:.75rem;font-weight:700;display:inline-flex}.role-page-badge-icon{font-size:1rem}.role-page-title{color:var(--hvl-navy);letter-spacing:.5px;margin:0 0 .5rem;font-family:LyonText,Georgia,serif;font-size:1.75rem;font-weight:900}.role-page-subtitle{color:var(--hvl-muted);max-width:640px;margin:0;font-size:.95rem;line-height:1.55}.role-page-meta{color:var(--hvl-muted);margin:0;font-size:.9rem}.role-page-section-heading{color:var(--hvl-text);margin:0 0 .75rem;font-family:LyonText,Georgia,serif;font-size:1.15rem;font-weight:700}.outcome-list{flex-direction:column;gap:.6rem;display:flex}.outcome-list-group{border:1px solid var(--hvl-blue-border);border-radius:8px;overflow:hidden}.outcome-list-summary{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--hvl-bg-subtle);border-bottom:1px solid #0000;align-items:center;gap:.6rem;padding:.65rem 1rem;list-style:none;transition:background .12s;display:flex}.outcome-list-summary:hover{background:var(--hvl-bg-teal)}.outcome-list-group[open]>.outcome-list-summary{border-bottom-color:var(--hvl-blue-border)}.outcome-list-summary::-webkit-details-marker{display:none}.outcome-list-chevron{color:var(--hvl-muted);flex-shrink:0;font-size:.65rem;transition:transform .15s}.outcome-list-group[open] .outcome-list-chevron{transform:rotate(90deg)}.outcome-list-category{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.ol-cat--knowledge{color:#1a5276;background:#e8f0fe}.ol-cat--skills{color:#1e7e34;background:#e6f4ea}.ol-cat--gc{color:#b45309;background:#fef3e2}.ol-cat--other{color:#555;background:#f0f0f0}.outcome-list-count{color:var(--hvl-muted);background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:10px;flex-shrink:0;margin-left:auto;padding:.05rem .5rem;font-size:.7rem;font-weight:700}.outcome-list-ol{background:var(--hvl-white);flex-direction:column;gap:.45rem;margin:0;padding:.5rem .75rem .75rem;list-style:none;display:flex}.outcome-list-item{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-border);border-left:3px solid #0000;border-radius:6px;align-items:flex-start;gap:.65rem;padding:.6rem .75rem;transition:border-left-color .12s,background .12s;display:flex}.outcome-list-item:hover{background:var(--hvl-white)}.outcome-list-group:has(.ol-cat--knowledge) .outcome-list-item{border-left-color:#93b4f5}.outcome-list-group:has(.ol-cat--skills) .outcome-list-item{border-left-color:#6fcf8f}.outcome-list-group:has(.ol-cat--gc) .outcome-list-item{border-left-color:#f0b862}.outcome-list-group:has(.ol-cat--other) .outcome-list-item{border-left-color:#bbb}.outcome-list-num{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);width:1.5rem;height:1.5rem;color:var(--hvl-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.05rem;font-size:.68rem;font-weight:700;display:flex}.outcome-list-text{color:var(--hvl-text);flex:1;min-width:0;font-size:.875rem;line-height:1.55}.pg-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.pg-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;flex-direction:column;gap:.5rem;padding:1.5rem;transition:box-shadow .2s,border-color .2s;display:flex}.pg-card:hover{border-color:var(--hvl-blue);box-shadow:0 4px 16px #0043571a}.pg-header{justify-content:space-between;align-items:center;display:flex}.pg-code{color:var(--hvl-navy);background:var(--hvl-bg-teal);letter-spacing:.5px;border-radius:3px;padding:.2rem .5rem;font-size:.8rem;font-weight:700}.pg-level{color:var(--hvl-muted);text-transform:uppercase;letter-spacing:.4px;font-size:.72rem;font-weight:600}.pg-name{color:var(--hvl-text);margin:.15rem 0 0;font-family:LyonText,Georgia,serif;font-size:1.05rem;font-weight:700;line-height:1.35}.pg-meta{color:var(--hvl-muted);flex-wrap:wrap;gap:.75rem;font-size:.78rem;display:flex}.pg-meta span:before{content:"·";color:var(--hvl-blue-border);margin-right:.35rem}.pg-meta span:first-child:before{content:none}.pg-outcomes-bar{gap:.5rem;margin-top:.25rem;display:flex}.pg-oc{letter-spacing:.3px;border-radius:3px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.pg-oc--knowledge{color:#1a5276;background:#e8f0fe}.pg-oc--skills{color:#1e7e34;background:#e6f4ea}.pg-oc--gc{color:#b45309;background:#fef3e2}.pg-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;align-self:flex-start;margin-top:auto;padding:.5rem 1.1rem;font-size:.85rem;font-weight:600;transition:background .15s}.pg-btn:hover{background:var(--hvl-navy-dark)}.cl-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.cl-row{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);cursor:pointer;border-radius:5px;align-items:center;gap:.75rem;padding:.7rem 1rem;transition:background .12s,border-color .12s;display:flex}.cl-row:hover{background:var(--hvl-bg-subtle);border-color:var(--hvl-blue)}.cl-code{color:var(--hvl-navy);min-width:60px;font-size:.82rem;font-weight:700}.cl-name{color:var(--hvl-text);flex:1;font-size:.88rem}.cl-credits{color:var(--hvl-muted);white-space:nowrap;font-size:.78rem}.cl-outcomes{color:var(--hvl-muted);white-space:nowrap;font-size:.75rem}.cl-arrow{color:var(--hvl-blue);font-size:.85rem;font-weight:600}.program-detail-layout{grid-template-columns:1fr 320px;align-items:start;gap:2rem;display:grid}@media (width<=860px){.program-detail-layout{grid-template-columns:1fr}}.program-detail-main{min-width:0}.program-detail-sidebar{flex-direction:column;gap:1rem;display:flex;position:sticky;top:1.5rem}.program-detail-actions{flex-wrap:wrap;gap:.6rem;margin-bottom:1.75rem;display:flex}.program-action-btn{cursor:pointer;border:1px solid var(--hvl-blue-border);background:var(--hvl-white);color:var(--hvl-navy);border-radius:4px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.program-action-btn:hover{background:var(--hvl-bg-subtle)}.program-action-btn--primary{background:var(--hvl-navy);color:var(--hvl-white);border-color:var(--hvl-navy)}.program-action-btn--primary:hover{background:var(--hvl-navy-dark)}.program-action-btn--small{padding:.3rem .7rem;font-size:.75rem}.program-action-btn--small:disabled{opacity:.6;cursor:not-allowed}.outcome-list-item--classified .outcome-list-content{flex-direction:column;gap:.3rem;display:flex}.outcome-classification-tags{flex-wrap:wrap;gap:.35rem;display:flex}.bloom-tag{background:var(--hvl-blue-border);color:var(--hvl-navy);border-radius:3px;padding:.15rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.bloom-remembering{color:#2e7d32;background:#e8f5e9}.bloom-understanding{color:#1565c0;background:#e3f2fd}.bloom-applying{color:#e65100;background:#fff3e0}.bloom-analyzing{color:#c62828;background:#fce4ec}.bloom-evaluating{color:#6a1b9a;background:#f3e5f5}.bloom-creating{color:#4527a0;background:#ede7f6}.nqf-tag{color:#00695c;background:#e0f2f1}.program-improvements{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-left:4px solid var(--hvl-orange);border-radius:6px;margin-bottom:1.75rem;padding:1rem 1.25rem}.program-improvements-heading{color:var(--hvl-text);margin:0 0 .6rem;font-family:LyonText,Georgia,serif;font-size:.95rem;font-weight:700}.program-improvements-list{flex-direction:column;gap:.3rem;margin:0;padding-left:1.2rem;display:flex}.program-improvements-list li{color:var(--hvl-text);font-size:.85rem;line-height:1.4}.program-section{margin-bottom:1.75rem}.program-section-header{align-items:baseline;gap:.6rem;margin-bottom:.4rem;display:flex}.program-section-heading{color:var(--hvl-text);margin:0;font-family:LyonText,Georgia,serif;font-size:1.05rem;font-weight:700}.program-section-sub{color:var(--hvl-muted);margin:0 0 .75rem;font-size:.8rem}.program-course-list{flex-direction:column;gap:.75rem;display:flex}.program-course-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);cursor:pointer;border-radius:8px;align-items:stretch;gap:0;transition:box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000d}.program-course-card:hover{box-shadow:0 3px 8px #0000001a}.program-course-card--alert{border-left:4px solid var(--hvl-error)}.program-course-thumb{background:var(--hvl-bg-subtle);border-right:1px solid var(--hvl-blue-border);flex-shrink:0;width:80px;min-height:80px}.program-course-body{flex:1;min-width:0;padding:.75rem 1rem}.program-course-top{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.35rem;display:flex}.program-course-code{color:var(--hvl-navy);font-size:1rem;font-weight:700}.program-course-score{color:var(--hvl-muted);font-size:.85rem}.program-status-dot{border-radius:50%;flex-shrink:0;width:18px;height:18px}.program-status-dot--green{background:var(--hvl-success)}.program-status-dot--amber{background:#c47c00}.program-status-dot--red{background:var(--hvl-error)}.program-course-meta{color:var(--hvl-muted);flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.78rem;display:flex}.program-course-alert{color:var(--hvl-error);align-items:center;gap:.3rem;margin-top:.4rem;font-size:.75rem;font-weight:700;display:inline-flex}.program-sidebar-panel{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:8px;padding:1rem 1.25rem}.program-sidebar-heading{color:var(--hvl-text);margin:0 0 .25rem;font-family:LyonText,Georgia,serif;font-size:.9rem;font-weight:700}.program-sidebar-sub{color:var(--hvl-muted);margin:0 0 .75rem;font-size:.75rem}.program-score-row{align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.program-score-value{color:var(--hvl-navy);white-space:nowrap;font-family:LyonText,Georgia,serif;font-size:1.5rem;font-weight:900}.program-score-context{color:var(--hvl-muted);font-size:.78rem;line-height:1.4}.program-graph-svg{width:100%;height:160px;display:block}.program-graph-labels{color:var(--hvl-muted);justify-content:space-between;margin-top:.25rem;font-size:.6rem;display:flex}.program-graph-legend{color:var(--hvl-muted);gap:1rem;margin-top:.5rem;font-size:.72rem;display:flex}.program-graph-legend-item{align-items:center;gap:.35rem;display:flex}.program-graph-legend-line{border-radius:1px;width:20px;height:2px}.program-frameworks-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.program-frameworks-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.program-frameworks-list li{color:var(--hvl-text);font-size:.82rem}.program-frameworks-list li:before{content:"• ";color:var(--hvl-blue)}.program-frameworks-coverage{flex-direction:column;gap:.75rem;margin-top:.25rem;display:flex}.fw-coverage-item{flex-direction:column;gap:.25rem;display:flex}.fw-coverage-item--clickable{cursor:pointer;border-radius:6px;padding:.4rem .5rem;transition:background .15s}.fw-coverage-item--clickable:hover{background:var(--hvl-blue-bg,#f0f4f8)}.fw-coverage-name{color:var(--hvl-navy);font-size:.82rem;font-weight:600}.fw-coverage-pending{color:var(--hvl-muted);font-size:.75rem;font-style:italic}.fw-coverage-stats{color:var(--hvl-text);gap:.75rem;font-size:.72rem;display:flex}.fw-coverage-bar-track{background:var(--hvl-blue-border);border-radius:3px;height:6px;overflow:hidden}.fw-coverage-bar-fill{background:var(--hvl-blue);border-radius:3px;height:100%;transition:width .3s}.program-edit-btn{border:1px solid var(--hvl-navy);background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border-radius:4px;align-items:center;gap:.25rem;padding:.2rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.program-versions-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.program-versions-list li a{color:var(--hvl-blue);border-bottom:none;font-size:.82rem}.program-versions-list li a:hover{color:var(--hvl-navy);text-decoration:underline}.cd-layout{gap:2rem;display:flex}.cd-main{flex:1;min-width:0}.cd-toc{flex-shrink:0;align-self:flex-start;width:170px;padding-top:.25rem;position:sticky;top:5rem}.cd-toc-title{text-transform:uppercase;letter-spacing:.6px;color:var(--hvl-muted);margin-bottom:.5rem;font-size:.68rem;font-weight:700;display:block}.cd-toc-list{border-left:2px solid var(--hvl-blue-border);margin:0;padding:0;list-style:none}.cd-toc-list li{margin:0}.cd-toc-link{color:var(--hvl-muted);border-left:2px solid #0000;margin-left:-2px;padding:.3rem 0 .3rem .75rem;font-size:.8rem;text-decoration:none;transition:color .15s,border-color .15s;display:block}.cd-toc-link:hover{color:var(--hvl-text)}.cd-toc-link--active{color:var(--hvl-navy);border-left-color:var(--hvl-navy);font-weight:600}@media (width<=900px){.cd-toc{display:none}}.cd-section{margin-bottom:2rem;scroll-margin-top:4.5rem}.cd-program-list{margin:0;padding:0;list-style:none}.cd-program-row{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);border-radius:5px;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex}.cd-program-row:hover{border-color:var(--hvl-blue);box-shadow:0 2px 8px #0043570f}.cd-program-code{color:var(--hvl-navy);background:var(--hvl-bg-teal);letter-spacing:.3px;white-space:nowrap;border-radius:3px;padding:.2rem .5rem;font-size:.82rem;font-weight:700}.cd-program-name{color:var(--hvl-text);flex:1;font-size:.88rem}.cd-program-credits{color:var(--hvl-muted);white-space:nowrap;font-size:.78rem}.cd-program-link{border:1px solid var(--hvl-blue);color:var(--hvl-blue);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;padding:.25rem .65rem;font-size:.78rem;font-weight:600;transition:background .15s,color .15s}.cd-program-link:hover{background:var(--hvl-blue);color:var(--hvl-white)}.cd-analysis-note{color:var(--hvl-muted);font-size:.85rem}.cd-analysis-error{background:var(--hvl-error-bg);color:var(--hvl-error);border-radius:5px;padding:.75rem 1rem;font-size:.85rem}.cd-analysis-error p{margin:0}.cd-analysis-loading{color:var(--hvl-muted);align-items:center;gap:.75rem;padding:1rem;font-size:.88rem;display:flex}.cd-analysis-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite cd-spin}@keyframes cd-spin{to{transform:rotate(360deg)}}.cd-analysis-empty{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);text-align:center;border-radius:6px;padding:1.5rem}.cd-analysis-empty p{color:var(--hvl-muted);margin:0 0 1rem;font-size:.9rem}.cd-analyze-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;padding:.55rem 1.25rem;font-size:.88rem;font-weight:600;transition:background .15s}.cd-analyze-btn:hover{background:var(--hvl-navy-dark)}.cd-analysis-meta{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.cd-analysis-date{color:var(--hvl-muted);font-size:.8rem}.cd-analysis-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.cd-analysis-item{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;padding:1rem 1.25rem}.cd-analysis-item-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cd-analysis-index{color:var(--hvl-muted);font-size:.8rem;font-weight:700}.cd-analysis-desc{color:var(--hvl-text);margin:0 0 .6rem;font-size:.88rem;line-height:1.5}.cd-analysis-tags{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cd-analysis-tag-label{color:var(--hvl-text);text-transform:uppercase;letter-spacing:.4px;font-size:.78rem;font-weight:700}.cd-analysis-tag-label--bloom{margin-left:.5rem}.cd-bloom-tag{letter-spacing:.3px;border-radius:3px;padding:.2rem .55rem;font-size:.75rem;font-weight:600}.cd-bloom-tag--primary{background:var(--hvl-bg-teal);color:var(--hvl-navy)}.cd-bloom-tag--secondary{color:#555;background:#f0f0f0}.cd-bloom-conf{opacity:.7;margin-left:.2rem;font-weight:400}.cd-analysis-reasoning{color:var(--hvl-muted);margin:.25rem 0 0;font-size:.8rem;line-height:1.45}.cd-edit-select{cursor:pointer;appearance:auto;border:1px solid #0000;border-radius:3px;padding:.2rem .4rem;font-size:.78rem;font-weight:600;transition:border-color .15s}.cd-edit-select:hover{border-color:var(--hvl-blue-border)}.cd-edit-select--cat{padding:.15rem .45rem}.cd-edit-select--bloom{background:var(--hvl-bg-teal);color:var(--hvl-navy)}.cd-accept-all-btn{color:#1e7e34;cursor:pointer;background:#e6f4ea;border:none;border-radius:4px;margin-left:auto;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:background .15s}.cd-accept-all-btn:hover{background:#c8e6c9}.cd-analysis-actions{gap:.5rem;margin-top:.65rem;display:flex}.cd-action-btn{cursor:pointer;border:none;border-radius:3px;padding:.3rem .7rem;font-size:.78rem;font-weight:700;transition:opacity .15s}.cd-action-btn:hover{opacity:.85}.cd-action-btn--accept{color:#1e7e34;background:#e6f4ea}.cd-action-btn--reject{color:#c0392b;background:#fef2f2}.cd-action-btn--reset{color:var(--hvl-muted);background:#f0f0f0;margin-left:auto}.fw-align-summary{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:8px;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:1rem 1.25rem;display:flex}.fw-align-stat{flex-direction:column;gap:.15rem;display:flex}.fw-align-stat-value{color:var(--hvl-navy);font-size:1.3rem;font-weight:700}.fw-align-stat-label{color:var(--hvl-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.fw-align-ka-list{flex-direction:column;gap:.5rem;display:flex}.fw-align-ka{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);border-radius:8px;overflow:hidden}.fw-align-ka--uncovered{opacity:.55}.fw-align-ka-header{cursor:pointer;color:var(--hvl-navy);align-items:center;gap:.6rem;padding:.7rem 1rem;font-size:.9rem;font-weight:600;list-style:none;display:flex}.fw-align-ka-header::-webkit-details-marker{display:none}.fw-align-ka-header:before{content:"▸";color:var(--hvl-muted);font-size:.75rem;transition:transform .15s}details[open]>.fw-align-ka-header:before{transform:rotate(90deg)}.fw-align-ka-header:hover{background:var(--hvl-blue-bg,#f0f4f8)}.fw-align-ka-indicator{background:var(--hvl-blue-border);min-width:2.2rem;color:var(--hvl-muted);border-radius:4px;justify-content:center;align-items:center;padding:.15rem .4rem;font-size:.7rem;font-weight:700;display:inline-flex}.fw-align-ka-indicator--covered{background:var(--hvl-blue);color:var(--hvl-white)}.fw-align-ka-name{flex:1}.fw-align-ka-body{flex-direction:column;gap:.25rem;padding:0 1rem .75rem;display:flex}.fw-align-ku{border:1px solid var(--hvl-blue-border);border-radius:6px;overflow:hidden}.fw-align-ku--uncovered{opacity:.45}.fw-align-ku-header{cursor:pointer;color:var(--hvl-text);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.82rem;list-style:none;display:flex}.fw-align-ku-header::-webkit-details-marker{display:none}.fw-align-ku-header:hover{background:var(--hvl-blue-bg,#f0f4f8)}.fw-align-ku-dot{background:var(--hvl-blue-border);border-radius:50%;flex-shrink:0;width:8px;height:8px}.fw-align-ku-dot--covered{background:var(--hvl-blue)}.fw-align-ku-name{flex:1;font-weight:500}.fw-align-ku-count{color:var(--hvl-muted);margin-left:auto;font-size:.72rem}.fw-align-outcomes{flex-direction:column;gap:.35rem;padding:.25rem .75rem .6rem 1.75rem;display:flex}.fw-align-outcome{background:var(--hvl-blue-bg,#f6f8fa);border-radius:4px;align-items:baseline;gap:.5rem;padding:.3rem .5rem;font-size:.78rem;line-height:1.35;display:flex}.fw-align-outcome-course{color:var(--hvl-navy);white-space:nowrap;min-width:4.5rem;font-weight:700}.fw-align-outcome-cat{text-transform:uppercase;letter-spacing:.02em;color:var(--hvl-blue);white-space:nowrap;background:#00537d14;border-radius:3px;padding:.1rem .35rem;font-size:.68rem;font-weight:600}.fw-align-outcome-desc{color:var(--hvl-text)}.analytics-chip{background:var(--hvl-bg-teal);color:var(--hvl-navy);white-space:nowrap;letter-spacing:.3px;border-radius:4px;flex-shrink:0;align-items:center;padding:.18rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.analytics-chip--sm{padding:.1rem .35rem;font-size:.6rem}.browser-grid{grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem;display:grid}.browser-panel{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:10px;min-width:0;padding:1.25rem;overflow:hidden;box-shadow:0 1px 3px #0000000d,0 1px 2px #0000000a}.browser-panel-heading{text-transform:uppercase;letter-spacing:.7px;color:var(--hvl-muted);margin:0 0 .75rem;font-size:.75rem;font-weight:700}.list-panel-controls{gap:.4rem;margin-bottom:.4rem;display:flex}.list-panel-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem;display:flex}.list-panel-input,.list-panel-select{border:1px solid var(--hvl-border);background:var(--hvl-bg-subtle);height:30px;color:var(--hvl-text);border-radius:5px;outline:none;padding:0 .6rem;font-family:inherit;font-size:.8rem;transition:border-color .15s,background .15s}.list-panel-input{flex:1;min-width:0}.list-panel-select{cursor:pointer;flex:1;min-width:0}.list-panel-input:focus,.list-panel-select:focus{border-color:var(--hvl-blue);background:var(--hvl-white)}.list-panel-count{color:var(--hvl-muted);text-align:right;margin-bottom:.3rem;font-size:.7rem}.list-panel-list{border:1px solid var(--hvl-border);background:var(--hvl-white);scrollbar-width:thin;scrollbar-color:var(--hvl-blue-border) transparent;border-radius:6px;max-height:168px;margin:0;padding:0;list-style:none;overflow-y:auto}.list-panel-item{border-bottom:1px solid var(--hvl-border);align-items:center;gap:.45rem;padding:.48rem .75rem;font-size:.83rem;transition:background .1s;display:flex}.list-panel-item:last-child{border-bottom:none}.list-panel-item:hover{background:var(--hvl-bg-subtle)}.list-panel-item--clickable{cursor:pointer}.list-item-name{color:var(--hvl-text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.list-item-meta{color:var(--hvl-muted);white-space:nowrap;flex-shrink:0;font-size:.74rem}.list-item-tags{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.list-item-overflow{color:var(--hvl-muted);white-space:nowrap;font-size:.7rem}.list-panel-empty{color:var(--hvl-muted);text-align:center;padding:1.25rem .75rem;font-size:.84rem}.list-panel-overlay-wrap{position:relative}.list-panel-overlay{z-index:10;background:#ffffffe6;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:1rem;display:flex;position:absolute;inset:0}.list-panel-overlay-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;flex-shrink:0;width:1.5rem;height:1.5rem;animation:.8s linear infinite lp-spin}@keyframes lp-spin{to{transform:rotate(360deg)}}.list-panel-overlay-label{color:var(--hvl-navy);text-align:center;font-size:.83rem;font-weight:600}.list-panel-overlay-sub{color:var(--hvl-muted);font-size:.75rem}.list-panel-overlay-progress{background:var(--hvl-border);border-radius:999px;width:100%;max-width:180px;height:5px;overflow:hidden}.list-panel-overlay-progress-fill{background:var(--hvl-blue);border-radius:999px;height:100%;transition:width .4s}.list-panel-overlay-error{color:var(--hvl-error);text-align:center;font-size:.8rem}.list-panel-overlay-retry{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;padding:.35rem .9rem;font-size:.8rem;font-weight:600}.list-item-extracted{background:var(--hvl-success-bg);color:var(--hvl-success);white-space:nowrap;border-radius:3px;flex-shrink:0;padding:.1rem .35rem;font-size:.6rem;font-weight:700}.list-item-review-badge{color:#8a5500;white-space:nowrap;background:#fff4e0;border-radius:3px;flex-shrink:0;padding:.1rem .35rem;font-size:.6rem;font-weight:700}.list-item-review-badge--done{background:var(--hvl-success-bg);color:var(--hvl-success)}.lv-picker{border:1px solid #d9e1e4;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:.6rem 1rem;margin:0 0 1rem;padding:.75rem 1rem;display:flex}.lv-picker legend{color:var(--hvl-muted);padding:0 .35rem;font-size:.8rem;font-weight:700}.lv-picker label{flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.lv-picker select{background:var(--hvl-white);min-height:36px;font:inherit;border:1px solid #c3cfd3;border-radius:6px;padding:0 .5rem}.lv-chips{flex-wrap:wrap;gap:.3rem;display:inline-flex}.lv-chip{color:#3a4c53;background:#edf0f1;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.lv-chip--low{background:var(--hvl-error-bg);color:var(--hvl-error)}.al-lo{font-weight:500}.al-score{color:var(--hvl-text);font-weight:700}.al-body{padding:0 1rem .75rem}.al-ignored{opacity:.6}.al-reason{color:var(--hvl-muted);margin-top:.2rem;font-size:.85rem;display:block}.al-explain{background:var(--hvl-bg-subtle);border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.92rem}.al-explain>summary{cursor:pointer;min-height:28px;font-weight:600}.al-explain ol{gap:.3rem;margin:.5rem 0;padding-left:1.25rem;display:grid}.al-explain p{margin:.4rem 0}.al-formula{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.lv-check .fc-area--neutral{border-left-color:#c3cfd3}.lv-check .al-reason:first-child{margin-top:0}.wf-panel{background:var(--hvl-white);border:1px solid #e0e0e0;border-radius:12px;min-width:0;margin-bottom:1rem;padding:1.1rem 1.25rem}.wf-panel h2{margin:0 0 .75rem;font-size:1.05rem}.wf-panel>summary{cursor:pointer;font-weight:600}.wf-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;display:flex}.wf-row--between{justify-content:space-between;align-items:center}.wf-row--between h2{margin:0}.wf-field{color:#333;flex-direction:column;flex:260px;gap:.35rem;min-width:0;font-size:.875rem;font-weight:600;display:flex}.wf-field--inline{flex:0 auto}.wf-field select{background:var(--hvl-white);border:1px solid #ccc;border-radius:8px;max-width:100%;padding:.5rem .6rem;font-size:.9rem}.wf-muted{color:var(--hvl-muted);font-size:.875rem}.wf-ok{color:var(--hvl-success);margin:.25rem 0;font-size:.9rem}.wf-warn{color:#8a5300;font-size:.85rem}.wf-stats{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.wf-stat{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-border);border-radius:10px;flex-direction:column;min-width:140px;padding:.7rem 1rem;display:flex}.wf-stat strong{font-size:1.4rem}.wf-stat span{color:var(--hvl-muted);font-size:.8rem}.wf-steps{counter-reset:none;margin:0 0 1rem;padding:0;list-style:none}.wf-step{background:var(--hvl-white);border:1px solid #e0e0e0;border-left:4px solid var(--hvl-blue);border-radius:12px;margin-bottom:.9rem;padding:1rem 1.25rem}.wf-step.done{border-left-color:var(--hvl-success)}.wf-step-head{align-items:center;gap:.75rem;display:flex}.wf-step-head h2{flex:1;margin:0;font-size:1.05rem}.wf-step-num{background:var(--hvl-navy);width:1.8rem;height:1.8rem;color:var(--hvl-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.wf-step.done .wf-step-num{background:var(--hvl-success)}.wf-step-status{color:var(--hvl-muted);font-size:.85rem}.wf-step .cbm{border:none;margin:.75rem 0 0;padding:0}.wf-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.6rem;display:flex}.wf-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.05rem;font-size:.9rem;text-decoration:none;display:inline-block}.wf-btn:hover{color:var(--hvl-white);background:var(--hvl-navy-dark)}.wf-btn:disabled{opacity:.55;cursor:default}.wf-btn--secondary{background:var(--hvl-white);color:var(--hvl-navy);border:1px solid var(--hvl-navy)}.wf-btn--secondary:hover{background:var(--hvl-bg-subtle);color:var(--hvl-navy)}.wf-link{color:var(--hvl-blue);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.875rem}.wf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.wf-grid .wf-panel{margin-bottom:0}.wf-span-2{grid-column:1/-1}.wf-count{background:var(--hvl-bg-teal);min-width:1.5rem;color:var(--hvl-navy);text-align:center;border-radius:999px;margin-left:.3rem;padding:0 .4rem;font-size:.8rem;display:inline-block}.wf-queue,.wf-suggestions{margin:0 0 .6rem;padding:0;list-style:none}.wf-queue li,.wf-suggestion{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;font-size:.875rem;display:flex}.wf-queue li>:first-child,.wf-suggestion>:first-child{min-width:0}.wf-suggestion{border-left:3px solid var(--hvl-blue);background:var(--hvl-bg-subtle);border-bottom:none;border-radius:4px;margin-bottom:.35rem;padding-left:.6rem;padding-right:.6rem}.wf-suggestion--gap{background:#fff8ec;border-left-color:#b26a00}.wf-suggestion--info{border-left-color:var(--hvl-muted);background:#f7f7f7}.wf-tag{white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.75rem;font-weight:600}.wf-tag--covered{background:var(--hvl-success-bg);color:var(--hvl-success)}.wf-tag--partial{color:#b26a00;background:#fff4e0}.wf-tag--uncovered{background:var(--hvl-error-bg);color:var(--hvl-error)}.wf-mark{font-size:.8rem;font-weight:600}.wf-mark--ok{color:var(--hvl-success)}.wf-mark--pending{color:#b26a00}.wf-mark--no{color:var(--hvl-muted)}.wf-table-wrap{overflow-x:auto}.wf-table{border-collapse:collapse;width:100%;margin-top:.75rem;font-size:.85rem}.wf-table th,.wf-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee;padding:.4rem .5rem}.wf-table th{color:var(--hvl-muted);white-space:nowrap;font-weight:600}.wf-comparison{margin:1.5rem 0}@media (width<=760px){.wf-grid{grid-template-columns:1fr}}.pr-cards{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.pr-card{background:var(--hvl-white);border:1px solid #d9e1e4;border-radius:10px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.pr-card-head{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.pr-eyebrow{letter-spacing:.05em;text-transform:uppercase;color:var(--hvl-muted);font-size:.75rem;font-weight:700}.pr-card-title{margin:.15rem 0 0;font-size:1.2rem}.pr-remove{background:var(--hvl-white);min-width:36px;min-height:36px;color:var(--hvl-muted);cursor:pointer;border:1px solid #c3cfd3;border-radius:8px;font-size:1.1rem}.pr-remove:hover{color:var(--hvl-error);border-color:var(--hvl-error)}.pr-progress{flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.pr-dots{gap:6px;display:flex}.pr-dot{background:#e1e6e8;border-radius:3px;width:28px;height:6px}.pr-dot--done{background:var(--hvl-navy)}.pr-dot--review{background:#e59a2f}.pr-dot--running{background:var(--hvl-blue)}.pr-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.pr-kpis div{flex-direction:column;display:flex}.pr-kpis strong{font-size:1.5rem;line-height:1.2}.pr-kpis span{color:var(--hvl-muted);font-size:.8rem}.pr-continue{align-self:flex-start;text-decoration:none}.pr-steps{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.pr-steps li{display:flex}.pr-step{text-align:left;min-height:72px;font:inherit;color:var(--hvl-text);background:var(--hvl-white);cursor:pointer;border:1px solid #d9e1e4;border-radius:10px;flex-direction:column;flex:1;gap:.25rem;padding:.7rem .85rem;display:flex}.pr-step:hover{border-color:var(--hvl-blue)}.pr-step--on{border:2px solid var(--hvl-navy);background:var(--hvl-blue-light);padding:calc(.7rem - 1px) calc(.85rem - 1px)}.pr-step-head{align-items:center;gap:.5rem;display:flex}.pr-step-title{font-weight:600}.pr-step-status{color:var(--hvl-muted);font-size:.8rem}.pr-num{color:#3a4c53;background:#edf0f1;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-flex}.pr-num--done{background:var(--hvl-navy);color:var(--hvl-white)}.pr-num--review{color:#2a1a00;background:#e59a2f}.pr-num--running{background:var(--hvl-blue);color:var(--hvl-white)}.pr-two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.pr-box{border:1px solid #d9e1e4;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1rem;display:flex}.pr-box h3,.pr-box p{margin:0}.pr-courses{margin-top:.75rem}.pr-courses>summary{cursor:pointer;min-height:32px;font-weight:600}.pr-table-wrap{overflow-x:auto}.pr-chips{flex-wrap:wrap;gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.pr-chips a{background:var(--hvl-bg-subtle);border:1px solid #d9e1e4;border-radius:6px;padding:.25rem .6rem;font-size:.85rem;text-decoration:none;display:inline-block}.pr-frameworks{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.pr-fw{text-align:left;min-height:110px;font:inherit;color:var(--hvl-text);background:var(--hvl-white);cursor:pointer;border:1px solid #d9e1e4;border-radius:10px;flex-direction:column;gap:.35rem;padding:1rem;text-decoration:none;display:flex}.pr-fw:hover{border-color:var(--hvl-blue)}.pr-fw--on{border:2px solid var(--hvl-navy);background:var(--hvl-blue-light);padding:calc(1rem - 1px)}.pr-fw--upload{border-style:dashed}.pr-fw-state{color:var(--hvl-navy);margin-top:auto;font-size:.85rem;font-weight:600}.pr-threshold{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.pr-pill{min-height:36px;font:inherit;background:var(--hvl-white);color:var(--hvl-text);cursor:pointer;border:1px solid #c3cfd3;border-radius:999px;padding:0 .85rem;font-size:.85rem;font-weight:600}.pr-pill--on{background:var(--hvl-navy);border-color:var(--hvl-navy);color:var(--hvl-white)}.pr-tabs{border-bottom:1px solid #e6ecee;flex-wrap:wrap;gap:1.25rem;margin:.5rem 0 1rem;display:flex}.pr-tab{min-height:44px;font:inherit;color:var(--hvl-muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 .2rem;font-weight:600}.pr-tab--on{color:var(--hvl-text);border-bottom-color:var(--hvl-navy)}@media (width<=640px){.pr-kpis{grid-template-columns:minmax(0,1fr)}}.pr-outcomes{gap:.4rem;margin:.5rem 0 0;padding-left:1.5rem;display:grid}.wf-panel .wf-actions+.fc-summary,.wf-panel .wf-warn+.fc-summary{margin-top:1rem}.pr-levels{border-top:1px solid #e6ecee;margin-top:1.25rem;padding-top:1rem}.pr-levels h3{margin:0 0 .25rem}.pa-intro{flex:420px;margin:0}.pa-courses{border:1px solid #d9e1e4;border-radius:10px;margin:.75rem 0 1rem;padding:.75rem 1rem}.pa-courses>summary{cursor:pointer;min-height:28px;font-weight:600}.pa-actions{flex-wrap:wrap;gap:.75rem;margin:.5rem 0;display:flex}.pa-list{max-height:420px;margin:0;padding:0;list-style:none;overflow-y:auto}.pa-list li{border-top:1px solid #eef2f3;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.4rem 0;display:flex}.pa-list label{cursor:pointer;flex:320px;align-items:center;gap:.5rem;min-height:32px;display:flex}.pa-list input{width:18px;height:18px;accent-color:var(--hvl-navy)}.pa-name{color:var(--hvl-muted)}.pa-status{border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.pa-status--checked{background:var(--hvl-success-bg);color:var(--hvl-success)}.pa-status--none{color:#52666e;background:#edf0f1}.pa-status--running{color:#2f3c8c;background:#e6e9f7}.pa-status--failed{background:var(--hvl-error-bg);color:var(--hvl-error)}.pa-extra{border-top:1px solid #e6ecee;margin-top:1.5rem;padding-top:1rem}.pa-extra h3{margin:0 0 .25rem}.pa-extra input{min-height:40px;font:inherit;border:1px solid #c3cfd3;border-radius:6px;padding:0 .6rem}.pa-extra-list{margin:.75rem 0 0;padding:0;list-style:none}.pa-extra-list li{border-top:1px solid #eef2f3;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;padding:.5rem 0;display:flex}.pr-follow{justify-content:flex-end;margin:-.5rem 0 .75rem;display:flex}.add-courses-page{width:100%;max-width:900px;margin:0 auto;padding:2rem 1.5rem}.add-courses-header{border-bottom:1px solid var(--hvl-blue-border);margin-bottom:2rem;padding-bottom:1.5rem}.add-courses-header h1{margin:.5rem 0 .25rem}.add-courses-subtitle{color:var(--hvl-muted);max-width:640px;margin:0;font-size:1rem;line-height:1.5}.back-link{color:var(--hvl-navy);background:0 0;border-bottom:1px solid #0000;padding:0;font-size:.9rem;font-weight:500}.back-link:hover{color:var(--hvl-blue);border-bottom-color:var(--hvl-blue)}.add-courses-section h2{color:var(--hvl-navy);margin:0 0 .5rem;font-size:1.15rem}.step-description{color:var(--hvl-muted);margin:0 0 1rem;font-size:.9rem;line-height:1.5}.search-input{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);width:100%;color:var(--hvl-text);box-sizing:border-box;border-radius:3px;margin-bottom:.5rem;padding:.6rem .85rem;font-size:.95rem}.search-input:focus{border-color:var(--hvl-blue);outline:none;box-shadow:0 0 0 2px #00669926}.search-input::placeholder{color:var(--hvl-muted)}.search-count{color:var(--hvl-muted);margin:0 0 .75rem;font-size:.82rem}.loading-message{color:var(--hvl-muted);text-align:center;padding:2rem 0;font-style:italic}.step-header{align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.back-btn{background:var(--hvl-blue-light);color:var(--hvl-navy);border:1px solid var(--hvl-blue-border);padding:.35em .8em;font-size:.85rem}.back-btn:hover{background:var(--hvl-white);border-color:var(--hvl-blue-active)}.program-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.program-option{appearance:none;box-sizing:border-box;background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);cursor:pointer;width:100%;color:var(--hvl-text);font:inherit;text-align:left;border-radius:3px;align-items:center;gap:.75rem;padding:1rem;transition:background-color .15s,border-color .15s;display:flex}.program-option:hover{background:var(--hvl-white);border-color:var(--hvl-blue-active)}.program-option.selected{border-color:var(--hvl-blue);background:var(--hvl-bg-teal)}.program-option .program-code{color:var(--hvl-navy);min-width:80px;margin:0;font-weight:700}.program-option .program-name{color:var(--hvl-text);flex:1}.program-option .program-credits{color:var(--hvl-muted);font-size:.85rem}.already-extracted-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--hvl-success-bg);color:var(--hvl-success);border-radius:2px;padding:.15rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.select-controls{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.select-all-btn{background:var(--hvl-blue-light);color:var(--hvl-navy);border:1px solid var(--hvl-blue-border);padding:.35em .8em;font-size:.8rem}.select-all-btn:hover{background:var(--hvl-white);border-color:var(--hvl-blue-active)}.selection-count{color:var(--hvl-muted);margin-left:auto;font-size:.85rem}.course-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.course-item{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);border-radius:3px;transition:border-color .15s}.course-item:hover{border-color:var(--hvl-blue-active)}.course-label{cursor:pointer;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;display:flex}.course-label.selected{background:var(--hvl-bg-teal)}.course-label input[type=checkbox]{accent-color:var(--hvl-blue);width:1.1em;height:1.1em}.course-code{color:var(--hvl-navy);min-width:80px;font-size:.9rem;font-weight:700}.course-name{color:var(--hvl-text);flex:1;font-size:.9rem}.course-credits{color:var(--hvl-muted);font-size:.8rem}.no-courses{color:var(--hvl-muted);font-style:italic}.submit-controls{justify-content:flex-end;margin-top:1.5rem;display:flex}.submit-btn{background:var(--hvl-navy);color:var(--hvl-white);border-radius:3px;padding:.65em 1.5em;font-size:.95rem;font-weight:600}.submit-btn:hover:not(:disabled){background:var(--hvl-navy-dark)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.progress-container{margin:1.5rem 0}.progress-bar-wrapper{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);border-radius:3px;height:24px;overflow:hidden}.progress-bar-fill{background:var(--hvl-blue);border-radius:2px;height:100%;transition:width .3s}.progress-text{color:var(--hvl-text);margin:.75rem 0 .25rem;font-size:.9rem}.progress-status{color:var(--hvl-muted);margin:0;font-size:.85rem}.processing-items{margin:.75rem 0}.processing-items-label{color:var(--hvl-muted);margin:0 0 .4rem;font-size:.8rem;font-weight:600}.processing-items-list{flex-wrap:wrap;gap:.35rem;display:flex}.processing-item-badge{background:var(--hvl-blue-light);border:1px solid var(--hvl-blue-border);color:var(--hvl-text);border-radius:3px;padding:.15rem .5rem;font-family:monospace;font-size:.75rem;display:inline-block}.processing-hint{color:var(--hvl-muted);margin-top:1rem;font-size:.9rem;font-style:italic}.completed-message{background:var(--hvl-success-bg);border:1px solid #c8e6c9;border-radius:3px;margin:1.5rem 0;padding:1rem 1.25rem}.completed-message p{color:var(--hvl-success);margin:0 0 1rem;font-weight:600}.completed-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.completed-actions .back-link{margin-left:.5rem}.extraction-error{background:var(--hvl-error-bg);border:1px solid #f5c6c2;border-radius:3px;margin-bottom:1rem;padding:.75rem 1rem}.extraction-error p{color:var(--hvl-error);margin:0;font-size:.9rem}.progress-actions{border-top:1px solid var(--hvl-blue-border);margin-top:1.5rem;padding-top:1rem}.settings-page{width:100%;max-width:1000px;margin:0 auto;padding:3rem 1.5rem 2rem}.settings-hero{text-align:center;border-bottom:1px solid var(--hvl-blue-border);margin-bottom:2.5rem;padding-bottom:1.5rem}.settings-title{color:var(--hvl-navy);letter-spacing:.5px;margin:0 0 .75rem;font-family:LyonText,Georgia,serif;font-size:2rem;font-weight:900}.settings-subtitle{color:var(--hvl-muted);max-width:640px;margin:0 auto;font-size:1rem;line-height:1.6}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.settings-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;flex-direction:column;padding:1.5rem;transition:box-shadow .2s,border-color .2s;display:flex}.settings-card:hover{border-color:var(--hvl-blue)}.settings-card-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.settings-card-icon{color:var(--hvl-navy);font-size:1.5rem}.settings-card-label{color:var(--hvl-text);margin:0;font-family:LyonText,Georgia,serif;font-size:1.05rem;font-weight:700}.settings-card-loading{color:var(--hvl-muted);text-align:center;padding:1rem 0;font-size:.9rem}.settings-card-error{color:var(--hvl-error);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.settings-retry-btn{border:1px solid var(--hvl-error);color:var(--hvl-error);cursor:pointer;background:0 0;border-radius:4px;padding:.3rem .75rem;font-size:.8rem;transition:background .15s}.settings-retry-btn:hover{background:var(--hvl-error-bg)}.settings-card-body{flex:1;margin-bottom:1rem}.settings-select-label{color:var(--hvl-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem;font-size:.8rem;font-weight:600;display:block}.settings-select{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);width:100%;color:var(--hvl-text);cursor:pointer;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;transition:border-color .15s}.settings-select:focus{border-color:var(--hvl-blue);outline:none;box-shadow:0 0 0 2px #008aaf26}.settings-card-footer{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.settings-card-error-inline{color:var(--hvl-error);margin-right:auto;font-size:.8rem}.settings-card-saved{color:var(--hvl-success);font-size:.85rem;font-weight:600}.settings-save-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;padding:.45rem 1.25rem;font-size:.85rem;font-weight:600;transition:background .15s}.settings-save-btn:hover:not(:disabled){background:var(--hvl-navy-dark)}.settings-save-btn:disabled{opacity:.5;cursor:not-allowed}.settings-models-list{margin-top:1rem}.settings-model-items{flex-wrap:wrap;gap:.35rem;margin:.4rem 0 .6rem;padding:0;list-style:none;display:flex}.settings-model-item{background:var(--hvl-blue-bg,#e8f0fe);border:1px solid var(--hvl-blue-border,#c4d7f2);color:var(--hvl-navy,#1a2744);border-radius:1rem;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.8rem;display:inline-flex}.settings-model-name{white-space:nowrap}.settings-delete-model-btn{cursor:pointer;color:#999;background:0 0;border:none;border-radius:50%;padding:0 .15rem;font-size:.75rem;line-height:1;transition:color .15s,background .15s}.settings-delete-model-btn:hover{color:#d32f2f;background:#d32f2f1a}.settings-add-model{align-items:center;gap:.4rem;display:flex}.settings-add-model-input{border:1px solid var(--hvl-blue-border,#c4d7f2);background:var(--hvl-white,#fff);color:var(--hvl-navy,#1a2744);border-radius:.4rem;flex:1;padding:.35rem .6rem;font-size:.85rem}.settings-add-model-input:focus{border-color:var(--hvl-blue,#0052b4);outline:none;box-shadow:0 0 0 2px #0052b426}.settings-add-model-btn{border:1px solid var(--hvl-blue-border,#c4d7f2);background:var(--hvl-blue-bg,#e8f0fe);color:var(--hvl-navy,#1a2744);cursor:pointer;white-space:nowrap;border-radius:.4rem;padding:.35rem .75rem;font-size:.8rem;transition:background .15s}.settings-add-model-btn:hover:not(:disabled){background:var(--hvl-blue-border,#c4d7f2)}.settings-add-model-btn:disabled{opacity:.5;cursor:not-allowed}.api-catalog-page{width:100%;max-width:1180px;margin:0 auto;padding:2.5rem 1.5rem 2rem}.api-catalog-hero{border:1px solid var(--hvl-border);background:linear-gradient(#fff 0%,#fbfeff 100%);margin-bottom:1rem;box-shadow:0 12px 30px #0043570f}.api-catalog-hero,.api-catalog-toolbar,.api-catalog-service-group,.api-catalog-error,.api-catalog-loading,.api-catalog-empty{background:linear-gradient(#fff 0%,#fbfeff 100%);border-radius:20px;box-shadow:0 12px 30px #0043570f}.api-catalog-hero{padding:1.35rem 1.5rem 1.2rem}.api-catalog-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--hvl-blue);margin:0 0 .45rem;font-size:.75rem;font-weight:700}.api-catalog-title{color:var(--hvl-navy);letter-spacing:.02em;margin:0 0 .75rem;font-family:LyonText,Georgia,serif;font-size:clamp(2rem,2.6vw,2.8rem);font-weight:800}.api-catalog-subtitle{color:var(--hvl-muted);max-width:68ch;margin:0;font-size:.98rem;line-height:1.6}.api-catalog-toolbar{margin-bottom:1.25rem;padding:.9rem}.api-catalog-filters{flex-wrap:wrap;gap:.75rem;display:flex}.api-catalog-search{border:1px solid var(--hvl-border);min-width:200px;color:var(--hvl-text);background:var(--hvl-white);border-radius:12px;flex:1;padding:.8rem .95rem;font-size:.95rem}.api-catalog-search:focus{border-color:var(--hvl-blue);outline:none;box-shadow:0 0 0 3px #008aaf24}.api-catalog-filter-select{border:1px solid var(--hvl-border);color:var(--hvl-text);background:var(--hvl-white);border-radius:12px;min-width:170px;padding:.8rem .95rem;font-size:.95rem}.api-catalog-loading{text-align:center;color:var(--hvl-muted);border-radius:18px;padding:2rem;font-size:.95rem}.api-catalog-error{text-align:center;color:#b91c1c;border-radius:18px;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex}.api-catalog-retry-btn{border:1px solid var(--hvl-border);background:var(--hvl-white);color:var(--hvl-navy);cursor:pointer;border-radius:10px;padding:.55rem 1rem;font-size:.9rem}.api-catalog-retry-btn:hover{background:var(--hvl-blue-light)}.api-catalog-empty{text-align:center;color:var(--hvl-muted);border-radius:18px;padding:2rem;font-size:.95rem}.api-catalog-service-group{border-radius:18px;margin-bottom:1.25rem;overflow:hidden}.api-catalog-service-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:.95rem 1.1rem .7rem;display:flex}.api-catalog-service-name{color:var(--hvl-navy);margin:0 0 .25rem;font-family:LyonText,Georgia,serif;font-size:1.35rem;font-weight:800}.api-catalog-service-desc{color:var(--hvl-muted);margin:0 0 .75rem;font-size:.92rem;line-height:1.4}.api-catalog-table-wrapper{border-top:1px solid var(--hvl-border);background:var(--hvl-white);overflow-x:auto}.api-catalog-table{border-collapse:collapse;width:100%;font-size:.92rem}.api-catalog-th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--hvl-muted);border-bottom:1px solid var(--hvl-border);white-space:nowrap;padding:.8rem .9rem;font-size:.78rem;font-weight:600}.api-catalog-th--method{width:80px}.api-catalog-th--path{width:280px}.api-catalog-th--auth{width:110px}.api-catalog-th--tags{width:120px}.api-catalog-row:not(:last-child) .api-catalog-td{border-bottom:1px solid var(--hvl-border)}.api-catalog-row:hover{background:#008aaf08}.api-catalog-td{vertical-align:top;color:var(--hvl-text);padding:.82rem .9rem}.api-catalog-td--path code{color:var(--hvl-navy);word-break:break-all;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem}.api-catalog-td--desc{color:var(--hvl-text);line-height:1.4}.api-catalog-muted{color:var(--hvl-muted)}.api-method-badge{letter-spacing:.03em;text-align:center;color:#fff;background:#6b7280;border-radius:999px;min-width:52px;padding:.32rem .55rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;font-weight:700;display:inline-block}.api-method--get{background:#059669}.api-method--post{background:#2563eb}.api-method--put{background:#d97706}.api-method--patch{background:#7c3aed}.api-method--delete{background:#dc2626}.api-auth-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:.32rem .55rem;font-size:.8rem;font-weight:700;display:inline-flex}.api-auth-badge--required{color:var(--hvl-navy);background:var(--hvl-blue-light);border-color:var(--hvl-blue-border)}.api-auth-badge--open{color:#059669;background:#ecfdf5;border-color:#d1fae5}.api-tag-badge{background:var(--hvl-bg);color:var(--hvl-text);border:1px solid var(--hvl-border);border-radius:999px;margin-bottom:.25rem;margin-right:.35rem;padding:.2rem .45rem;font-size:.75rem;display:inline-block}.api-catalog-footer-note{text-align:center;color:var(--hvl-muted);border-top:1px solid var(--hvl-blue-border);margin-top:1rem;padding-top:1.5rem;font-size:.85rem}.api-catalog-footer-note p{margin:0}.hub-page{width:100%;max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.hub-breadcrumb{color:var(--hvl-muted);align-items:center;gap:.4rem;margin-bottom:1.5rem;font-size:.875rem;display:flex}.hub-breadcrumb a{color:var(--hvl-blue);border-bottom:none;text-decoration:none;transition:color .15s}.hub-breadcrumb a:hover{color:var(--hvl-navy)}.hub-breadcrumb-sep{color:var(--hvl-muted);opacity:.6}.hub-breadcrumb-current{color:var(--hvl-text);font-weight:600}.hub-header{border-bottom:1px solid var(--hvl-blue-border);align-items:flex-start;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.hub-header-icon{color:var(--hvl-navy);flex-shrink:0;margin-top:.1rem;font-size:2.25rem}.hub-header-text{flex:1}.hub-header-title{color:var(--hvl-text);letter-spacing:.8px;margin:0 0 .4rem;font-family:LyonText,Georgia,serif;font-size:1.875rem;font-weight:900}.hub-header-subtitle{color:var(--hvl-muted);max-width:640px;margin:0;font-size:1rem;line-height:1.5}.hub-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--hvl-muted);margin:0 0 1rem;font-size:.8rem;font-weight:700}.hub-tools-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.hub-tool-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:4px;flex-direction:column;padding:1.5rem;transition:border-color .15s,box-shadow .15s;display:flex}.hub-tool-card.active:hover{border-color:var(--hvl-blue)}.hub-tool-card.inactive{opacity:.65}.hub-tool-card-top{justify-content:flex-end;align-items:flex-start;margin-bottom:.75rem;display:flex}.hub-tool-status{text-transform:uppercase;letter-spacing:.05em;border-radius:2px;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-block}.hub-tool-status.active{background:var(--hvl-success-bg);color:var(--hvl-success)}.hub-tool-status.inactive{background:var(--hvl-error-bg);color:var(--hvl-error)}.hub-tool-name{color:var(--hvl-navy);margin:0 0 .5rem;font-family:AkademieStd,sans-serif;font-size:1rem;font-weight:700}.hub-tool-description{color:var(--hvl-muted);flex:1;margin:0 0 1.25rem;font-size:.9rem;line-height:1.5}.hub-tool-open-btn{background-color:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:3px;align-self:flex-start;padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-block}.hub-tool-open-btn:hover{background-color:var(--hvl-blue);color:var(--hvl-white)}.hub-tool-open-btn:disabled,.hub-tool-open-btn.disabled{cursor:not-allowed;background-color:#b0bfc5}.hub-loading{color:var(--hvl-muted);margin-bottom:1rem;font-size:.9rem;font-style:italic}.hub-error{color:var(--hvl-error);background:var(--hvl-error-bg);border:1px solid #f5c6c2;border-radius:3px;margin-bottom:1rem;padding:.6rem 1rem;font-size:.9rem}.welcome-page{background:var(--hvl-bg);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.welcome-container{box-sizing:border-box;width:100%;max-width:1160px;margin:0 auto;padding:4rem 1.5rem}.welcome-band{background:var(--hvl-bg-subtle);border-top:1px solid var(--hvl-blue-border);border-bottom:1px solid var(--hvl-blue-border)}.welcome-section-heading{color:var(--hvl-navy);text-align:center;margin:0 0 2rem;font-family:LyonText,Georgia,serif;font-size:1.9rem;font-weight:700}.welcome-nav{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hvl-blue-border);background:#ffffffeb;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.welcome-brand{color:var(--hvl-navy);letter-spacing:.5px;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.welcome-brand-mark{background:var(--hvl-navy);width:1.9rem;height:1.9rem;color:var(--hvl-white);border-radius:8px;justify-content:center;align-items:center;font-family:LyonText,Georgia,serif;display:inline-flex}.welcome-nav-links{gap:1.25rem;margin-left:auto;display:flex}.welcome-nav-links a{color:var(--hvl-text);border-bottom:none;font-size:.9rem;text-decoration:none}.welcome-nav-links a:hover{color:var(--hvl-blue)}.welcome-nav-actions{align-items:center;gap:.75rem;display:flex}.welcome-btn{color:var(--hvl-white);background:var(--hvl-navy);border:1.5px solid var(--hvl-navy);cursor:pointer;border-radius:8px;padding:.8rem 1.6rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-block}.welcome-btn:hover{color:var(--hvl-white);background:var(--hvl-navy-dark)}.welcome-btn--small{padding:.45rem 1rem;font-size:.875rem}.welcome-btn--ghost{color:var(--hvl-navy);background:0 0}.welcome-btn--ghost:hover{background:var(--hvl-bg-teal);color:var(--hvl-navy)}.welcome-hero{box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:3rem;width:100%;max-width:1240px;margin:0 auto;padding:4.5rem 1.5rem 4rem;display:grid}.welcome-eyebrow{color:var(--hvl-blue);letter-spacing:1.2px;text-transform:uppercase;margin:0 0 1rem;font-size:.8rem;font-weight:700}.welcome-title{color:var(--hvl-navy);margin:0 0 1.25rem;font-family:LyonText,Georgia,serif;font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.12}.welcome-subtitle{color:var(--hvl-muted);margin:0 0 2rem;font-size:1.1rem;line-height:1.65}.welcome-hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.welcome-hero-visual{padding:0 0 2rem;position:relative}.welcome-shot{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);border-radius:12px;width:100%;display:block;box-shadow:0 18px 45px #002f3d29}.welcome-shot--main{aspect-ratio:16/11;object-fit:cover;object-position:top}.welcome-hero-card{background:var(--hvl-navy);max-width:220px;color:var(--hvl-white);border-radius:12px;flex-direction:column;gap:.2rem;padding:1rem 1.2rem;display:flex;position:absolute;bottom:1.5rem;right:-.5rem;box-shadow:0 14px 35px #002f3d4d}.welcome-hero-card strong{font-size:1.7rem}.welcome-hero-card span{opacity:.85;font-size:.85rem}.welcome-questions{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.welcome-questions li{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:12px;align-items:flex-start;gap:1rem;padding:1.2rem 1.3rem;font-size:1.05rem;line-height:1.5;display:flex}.welcome-q-num{background:var(--hvl-bg-teal);width:2rem;height:2rem;color:var(--hvl-navy);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.welcome-pipeline{counter-reset:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.welcome-pipeline li{border:1px solid var(--hvl-blue-border);border-top:4px solid var(--hvl-blue);background:var(--hvl-white);border-radius:12px;flex-direction:column;gap:.35rem;padding:1.1rem 1rem;display:flex;position:relative}.welcome-pipeline li:last-child{border-top-color:var(--hvl-orange)}.welcome-pipeline-step{color:var(--hvl-blue);font-size:.75rem;font-weight:700}.welcome-pipeline strong{color:var(--hvl-navy);font-size:1.05rem}.welcome-pipeline li>span:last-child{color:var(--hvl-muted);font-size:.875rem;line-height:1.45}.welcome-tour{padding-top:1rem}.welcome-feature{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:3rem;padding:2.5rem 0;display:grid}.welcome-feature--flip .welcome-feature-text{order:2}.welcome-tag{background:var(--hvl-bg-teal);color:var(--hvl-navy);border-radius:999px;margin-bottom:.8rem;padding:.2rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.welcome-feature h3{color:var(--hvl-navy);margin:0 0 .8rem;font-family:LyonText,Georgia,serif;font-size:1.55rem;line-height:1.25}.welcome-feature p{color:var(--hvl-muted);margin:0;font-size:1.02rem;line-height:1.65}.welcome-feature-visual{position:relative}.welcome-feature-visual .welcome-shot:first-child{aspect-ratio:16/10;object-fit:cover;object-position:top}.welcome-shot--inset{width:62%;position:absolute;bottom:-1.5rem;right:-1rem}.welcome-feature--flip .welcome-shot--inset{left:-1rem;right:auto}.welcome-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.welcome-card{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:12px;padding:1.4rem 1.3rem}.welcome-card h3,.welcome-principle h3{color:var(--hvl-navy);margin:.6rem 0 .4rem;font-size:1.05rem}.welcome-card p,.welcome-principle p{color:var(--hvl-muted);margin:0;font-size:.9rem;line-height:1.55}.welcome-card-icon{color:var(--hvl-blue);font-size:1.8rem}.welcome-principle{align-items:flex-start;gap:.8rem;display:flex}.welcome-principle h3{margin-top:.15rem}.welcome-cta{text-align:center;margin-top:3rem}.welcome-footer{text-align:center;color:var(--hvl-muted);border-top:1px solid var(--hvl-blue-border);box-sizing:border-box;width:100%;margin-top:auto;padding:1.75rem 1rem;font-size:.82rem;line-height:1.7}.welcome-footer p{margin:0}@media (width<=960px){.welcome-hero,.welcome-feature{grid-template-columns:1fr;gap:2rem}.welcome-feature--flip .welcome-feature-text{order:0}.welcome-pipeline,.welcome-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-nav-links{display:none}.welcome-nav-actions{margin-left:auto}}@media (width<=600px){.welcome-questions,.welcome-pipeline,.welcome-cards{grid-template-columns:1fr}.welcome-hero-visual{padding-left:0}.welcome-shot--inset{display:none}.welcome-hero-card{right:.5rem}.welcome-container{padding:3rem 1rem}}.ts h2{margin-top:0}.ts-row{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin:.5rem 0;display:flex}.ts-input{flex:280px}.ts-input input{width:100%;min-height:44px;font:inherit;border:1px solid #c3cfd3;border-radius:8px;padding:0 .9rem}.ts-sr{position:absolute;left:-9999px}.ts-examples{flex-wrap:wrap;gap:.35rem;display:flex}.ts-terms{flex-wrap:wrap;align-items:center;gap:.3rem;margin:.25rem 0 .5rem;display:flex}.ts-results{margin:0;padding:0;list-style:none}.ts-results>li{border-top:1px solid #e6ecee;padding:.75rem 0}.ts-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ts-head .wf-tag{margin-left:auto}.ts-hits{gap:.2rem;margin:.35rem 0 0;padding-left:1.1rem;font-size:.9rem;display:grid}.ts-hit-kind{color:var(--hvl-muted);font-weight:600}.ts-note{margin-top:.75rem;font-size:.85rem}.qa-select{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.qa-label{letter-spacing:.05em;text-transform:uppercase;color:var(--hvl-muted);margin-right:.25rem;font-size:.75rem;font-weight:700}.qa-chip{background:var(--hvl-navy);border-radius:999px;align-items:center;gap:.25rem;min-height:36px;padding:0 .35rem 0 .8rem;display:inline-flex}.qa-chip a{color:var(--hvl-white);font-weight:600;text-decoration:none}.qa-chip button{min-width:28px;min-height:28px;color:var(--hvl-white);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1rem}.qa-chip button:hover{background:#ffffff2e}.qa-add select{background:var(--hvl-white);width:auto;max-width:320px;min-height:36px;font:inherit;border:1px solid #c3cfd3;border-radius:999px;padding:0 .75rem}.qa-sr{position:absolute;left:-9999px}.qa-kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;margin-bottom:1.25rem;display:grid}.qa-kpi{background:var(--hvl-white);border:1px solid #d9e1e4;border-radius:10px;flex-direction:column;gap:.15rem;padding:1rem 1.15rem;display:flex}.qa-kpi strong{font-size:1.9rem;line-height:1.1}.qa-kpi span{font-size:.9rem}.qa-units{margin:0;padding:0;list-style:none}.qa-units li{border-top:1px solid #e6ecee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.55rem 0;display:flex}.qa-unit--off{opacity:.55}.qa-check{align-items:center;gap:.45rem;min-height:40px;font-size:.9rem;display:inline-flex}.qa-check input{width:18px;height:18px;accent-color:var(--hvl-navy)}.wf-tag--running{color:#2f3c8c;background:#e6e9f7}.qa-weak{flex:420px;min-width:0}.qa-weak-score{align-items:center;gap:.6rem;width:200px;display:inline-flex}.qa-weak-bar{flex:1;margin:0;display:block}.qa-weak-bar .fc-bar-fill{height:100%;display:block}.fabm-page{width:100%;max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.fabm-back-btn{color:var(--hvl-blue);cursor:pointer;background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.85rem;font-weight:600}.fabm-back-btn:hover{color:var(--hvl-navy)}.fabm-hero{border-bottom:1px solid var(--hvl-blue-border);margin-bottom:1.75rem;padding-bottom:1.25rem}.fabm-role-badge{background:var(--hvl-bg-teal);color:var(--hvl-navy);text-transform:uppercase;letter-spacing:.8px;border-radius:4px;margin-bottom:.75rem;padding:.3rem .7rem;font-size:.75rem;font-weight:700;display:inline-block}.fabm-title{color:var(--hvl-navy);margin:0 0 .5rem;font-family:LyonText,Georgia,serif;font-size:1.75rem;font-weight:900}.fabm-subtitle{color:var(--hvl-muted);max-width:640px;margin:0;font-size:.95rem;line-height:1.55}.fabm-error{color:#c0392b;background:#fef2f2;border-radius:5px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.fabm-muted{color:var(--hvl-muted);margin:0 0 1rem;font-size:.88rem}.fabm-section{margin-bottom:2rem}.fabm-section-heading{color:var(--hvl-text);margin:0 0 .75rem;font-family:LyonText,Georgia,serif;font-size:1.1rem;font-weight:700}.fabm-section-heading--step2{margin-top:1.5rem}.fabm-framework-grid{flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem;display:flex}.fabm-framework-card{background:var(--hvl-white);border:2px solid var(--hvl-blue-border);cursor:pointer;text-align:left;border-radius:6px;padding:1rem 1.25rem;transition:border-color .15s,box-shadow .15s}.fabm-framework-card:hover{border-color:var(--hvl-blue)}.fabm-framework-card--selected{border-color:var(--hvl-navy);box-shadow:0 0 0 2px #00435726}.fabm-fw-name{color:var(--hvl-text);margin-bottom:.25rem;font-size:.92rem;font-weight:700;display:block}.fabm-fw-meta{color:var(--hvl-muted);font-size:.78rem}.fabm-start-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;padding:.65rem 1.5rem;font-size:.92rem;font-weight:700;transition:background .15s}.fabm-start-btn:hover:not(:disabled){background:var(--hvl-navy-dark)}.fabm-start-btn:disabled{opacity:.45;cursor:not-allowed}.fabm-progress-bar{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;margin-bottom:1.25rem;padding:1rem 1.25rem}.fabm-progress-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.fabm-progress-label{color:var(--hvl-text);font-size:.88rem;font-weight:700}.fabm-progress-count{color:var(--hvl-muted);font-size:.82rem;font-weight:600}.fabm-progress-track{background:#e8ecf0;border-radius:4px;height:8px;overflow:hidden}.fabm-progress-fill{background:var(--hvl-navy);border-radius:4px;height:100%;transition:width .4s}.fabm-progress-stats{gap:1rem;margin-top:.6rem;display:flex}.fabm-stat{font-size:.78rem;font-weight:600}.fabm-stat--done{color:var(--hvl-navy)}.fabm-stat--error{color:#c0392b}.fabm-stat--accepted{color:#1e7e34}.fabm-course-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.fabm-course-item{border:1px solid var(--hvl-blue-border);border-radius:5px;overflow:hidden}.fabm-course-row{background:var(--hvl-white);align-items:center;gap:.65rem;padding:.65rem 1rem;display:flex}.fabm-course-row--clickable{cursor:pointer;transition:background .12s}.fabm-course-row--clickable:hover{background:var(--hvl-bg-subtle)}.fabm-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.fabm-status-dot--pending{background:#d1d5db}.fabm-status-dot--running{background:var(--hvl-orange);animation:1s infinite fabm-pulse}.fabm-status-dot--done{background:#1e7e34}.fabm-status-dot--error{background:#c0392b}.fabm-status-dot--skipped{background:#64748b}@keyframes fabm-pulse{0%,to{opacity:1}50%{opacity:.4}}.fabm-course-code{color:var(--hvl-navy);min-width:60px;font-size:.82rem;font-weight:700}.fabm-course-name{color:var(--hvl-text);flex:1;font-size:.85rem}.fabm-course-outcomes{color:var(--hvl-muted);white-space:nowrap;font-size:.75rem}.fabm-spinner{border:2px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite fabm-spin}@keyframes fabm-spin{to{transform:rotate(360deg)}}.fabm-error-tag{color:#c0392b;background:#fef2f2;border-radius:3px;padding:.15rem .4rem;font-size:.7rem;font-weight:700}.fabm-expand-icon{color:var(--hvl-muted);margin-left:auto;font-size:.8rem}.fabm-detail{background:var(--hvl-bg-subtle);border-top:1px solid var(--hvl-blue-border);padding:1rem 1.25rem}.fabm-detail-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.fabm-detail-meta{color:var(--hvl-muted);font-size:.8rem;font-weight:600}.fabm-accept-all-btn{color:var(--hvl-white);cursor:pointer;background:#1e7e34;border:none;border-radius:4px;padding:.35rem .85rem;font-size:.78rem;font-weight:700;transition:background .15s}.fabm-accept-all-btn:hover{background:#166d2b}.fabm-outcome-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.fabm-outcome-item{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:5px;padding:.85rem 1rem}.fabm-outcome-header{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.fabm-outcome-cat{text-transform:uppercase;letter-spacing:.4px;border-radius:3px;padding:.15rem .45rem;font-size:.68rem;font-weight:700}.fabm-outcome-cat--knowledge{color:#1a5276;background:#e8f0fe}.fabm-outcome-cat--skills{color:#1e7e34;background:#e6f4ea}.fabm-outcome-cat--generalcompetence{color:#b45309;background:#fef3e2}.fabm-outcome-desc{color:var(--hvl-text);margin:0 0 .4rem;font-size:.84rem;line-height:1.45}.fabm-bloom-tag{background:var(--hvl-bg-teal);color:var(--hvl-navy);border-radius:3px;margin-bottom:.5rem;padding:.15rem .4rem;font-size:.7rem;font-weight:600;display:inline-block}.fabm-ka-list{flex-direction:column;gap:.35rem;margin-bottom:.5rem;display:flex}.fabm-ka-item{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);border-radius:4px;padding:.5rem .65rem}.fabm-ka-header{justify-content:space-between;align-items:center;display:flex}.fabm-ka-name{color:var(--hvl-text);font-size:.82rem;font-weight:600}.fabm-relevance{color:var(--hvl-muted);font-size:.72rem;font-weight:700}.fabm-ku-list{flex-direction:column;gap:.2rem;margin:.3rem 0 0 .75rem;padding:0;list-style:none;display:flex}.fabm-ku-item{color:var(--hvl-text);justify-content:space-between;font-size:.78rem;display:flex}.fabm-ku-name{color:var(--hvl-muted)}.fabm-outcome-actions{gap:.5rem;margin-top:.5rem;display:flex}.fabm-btn{cursor:pointer;border:none;border-radius:3px;padding:.3rem .7rem;font-size:.78rem;font-weight:700;transition:opacity .15s}.fabm-btn:hover{opacity:.85}.fabm-btn--accept{color:#1e7e34;background:#e6f4ea}.fabm-btn--reject{color:#c0392b;background:#fef2f2}.fabm-ka-right,.fabm-ku-right{align-items:center;gap:.4rem;display:flex}.fabm-remove-btn{color:var(--hvl-muted);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.9rem;line-height:1;transition:opacity .12s,color .12s,border-color .12s;display:flex}.fabm-ka-item:hover .fabm-ka-header>.fabm-ka-right>.fabm-remove-btn,.fabm-ku-item:hover>.fabm-ku-right>.fabm-remove-btn{opacity:1}.fabm-remove-btn:hover{color:#c0392b;opacity:1;border-color:#c0392b}.fabm-add-mapping-btn{border:1px dashed var(--hvl-blue-border);color:var(--hvl-blue);cursor:pointer;background:0 0;border-radius:4px;margin-top:.4rem;padding:.35rem .7rem;font-size:.78rem;font-weight:600;transition:border-color .15s,background .15s}.fabm-add-mapping-btn:hover{border-color:var(--hvl-blue);background:var(--hvl-bg-subtle)}.fabm-add-form{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);border-radius:5px;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.65rem;display:flex}.fabm-add-select{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);color:var(--hvl-text);border-radius:3px;width:100%;padding:.35rem .5rem;font-size:.8rem}.fabm-add-form-actions{gap:.4rem;margin-top:.15rem;display:flex}.cspm-sp-picker{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.cspm-sp-label{color:var(--hvl-text);font-size:.85rem;font-weight:600}.cspm-sp-select{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);color:var(--hvl-text);border-radius:4px;flex:1;max-width:400px;padding:.4rem .6rem;font-size:.85rem}.cspm-sp-badge{color:var(--hvl-text);background:var(--hvl-bg-teal);border-radius:5px;margin-bottom:1.5rem;padding:.6rem 1rem;font-size:.88rem}.cspm-error{background:var(--hvl-error-bg);color:var(--hvl-error);border-radius:5px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.cspm-error p{margin:0}.cspm-loading{color:var(--hvl-muted);align-items:center;gap:.75rem;padding:1rem;font-size:.88rem;display:flex}.cspm-spinner{border:3px solid var(--hvl-blue-border);border-top-color:var(--hvl-blue);border-radius:50%;width:1.25rem;height:1.25rem;animation:.8s linear infinite cspm-spin}@keyframes cspm-spin{to{transform:rotate(360deg)}}.cspm-empty{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);text-align:center;border-radius:6px;padding:1.5rem}.cspm-empty p{color:var(--hvl-muted);margin:0 0 1rem;font-size:.9rem}.cspm-start-btn{background:var(--hvl-navy);color:var(--hvl-white);cursor:pointer;border:none;border-radius:4px;padding:.55rem 1.25rem;font-size:.88rem;font-weight:600;transition:background .15s}.cspm-start-btn:hover{background:var(--hvl-navy-dark)}.cspm-meta{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.cspm-meta-date{color:var(--hvl-muted);font-size:.8rem}.cspm-meta-stat{color:var(--hvl-text);font-size:.82rem;font-weight:600}.cspm-accept-all-btn{color:#1e7e34;cursor:pointer;background:#e6f4ea;border:none;border-radius:4px;margin-left:auto;padding:.35rem .85rem;font-size:.8rem;font-weight:700;transition:background .15s}.cspm-accept-all-btn:hover{background:#c8e6c9}.cspm-outcome-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.cspm-outcome-item{background:var(--hvl-white);border:1px solid var(--hvl-blue-border);border-radius:6px;padding:1rem 1.25rem}.cspm-outcome-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cspm-outcome-index{color:var(--hvl-muted);font-size:.8rem;font-weight:700}.cspm-outcome-cat{text-transform:uppercase;letter-spacing:.5px;border-radius:3px;padding:.15rem .45rem;font-size:.68rem;font-weight:700}.cspm-outcome-cat--knowledge{color:#1a5276;background:#e8f0fe}.cspm-outcome-cat--skills{color:#1e7e34;background:#e6f4ea}.cspm-outcome-cat--generalcompetence{color:#b45309;background:#fef3e2}.cspm-coverage-score{border-radius:3px;margin-left:auto;padding:.15rem .45rem;font-size:.75rem;font-weight:700}.cspm-coverage-score--high{color:#1e7e34;background:#e6f4ea}.cspm-coverage-score--medium{color:#b45309;background:#fff8e1}.cspm-coverage-score--low{color:#c0392b;background:#fef2f2}.cspm-outcome-desc{color:var(--hvl-text);margin:0 0 .6rem;font-size:.88rem;line-height:1.5}.cspm-covering-list,.cspm-coverage-list{margin-top:.5rem}.cspm-coverage-label{color:var(--hvl-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.35rem;font-size:.75rem;font-weight:700;display:block}.cspm-coverage-detail{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);border-radius:4px;margin-bottom:.35rem;padding:.5rem .65rem}.cspm-coverage-detail-header{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.cspm-relationship{text-transform:uppercase;letter-spacing:.3px;background:var(--hvl-bg-teal);color:var(--hvl-navy);border-radius:3px;padding:.12rem .4rem;font-size:.72rem;font-weight:700}.cspm-confidence{color:var(--hvl-muted);font-size:.72rem;font-weight:700}.cspm-supports{font-size:.72rem;font-weight:700}.cspm-supports--yes{color:#1e7e34}.cspm-supports--no{color:#c0392b}.cspm-reasoning{color:var(--hvl-muted);margin:.3rem 0 0;font-size:.78rem;line-height:1.45}.cspm-actions{gap:.5rem;margin-top:.65rem;display:flex}.cspm-btn{cursor:pointer;border:none;border-radius:3px;padding:.3rem .7rem;font-size:.78rem;font-weight:700;transition:opacity .15s}.cspm-btn:hover{opacity:.85}.cspm-btn--accept{color:#1e7e34;background:#e6f4ea}.cspm-btn--reject{color:#c0392b;background:#fef2f2}.cspm-remove-btn{color:#c0392b;cursor:pointer;opacity:0;background:0 0;border:none;margin-left:auto;padding:0 .3rem;font-size:1.1rem;font-weight:700;line-height:1;transition:opacity .15s}.cspm-coverage-detail:hover .cspm-remove-btn{opacity:1}.cspm-remove-btn:hover{color:#a93226}.cspm-covering-text{color:var(--hvl-text);margin:.25rem 0 0;font-size:.82rem;line-height:1.45}.cspm-add-mapping-btn{border:1px dashed var(--hvl-blue-border);color:var(--hvl-blue);cursor:pointer;background:0 0;border-radius:4px;margin-top:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:background .15s,border-color .15s}.cspm-add-mapping-btn:hover{background:var(--hvl-bg-subtle);border-color:var(--hvl-blue)}.cspm-add-form{background:var(--hvl-bg-subtle);border:1px solid var(--hvl-blue-border);border-radius:4px;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.65rem;display:flex}.cspm-add-select{border:1px solid var(--hvl-blue-border);background:var(--hvl-white);color:var(--hvl-text);border-radius:4px;width:100%;padding:.35rem .5rem;font-size:.82rem}.cspm-add-form-actions{gap:.4rem;display:flex}.gdpr-page{background:var(--hvl-bg);flex:1;padding:2.5rem 1rem 4rem}.gdpr-container{max-width:720px;margin:0 auto}.gdpr-back-link{color:var(--hvl-navy);opacity:.75;border-bottom:none;margin-bottom:2rem;font-size:.875rem;font-weight:600;transition:opacity .15s;display:inline-block}.gdpr-back-link:hover{opacity:1;color:var(--hvl-blue)}.gdpr-title{margin-bottom:.25rem}.gdpr-last-updated{color:var(--hvl-muted);margin:0 0 1.25rem;font-size:.8rem}.gdpr-intro{color:var(--hvl-text);border-left:3px solid var(--hvl-blue);margin-bottom:2.5rem;padding-left:1rem;font-size:1rem;line-height:1.65}.gdpr-section{border-bottom:1px solid var(--hvl-blue-border);margin-bottom:2.25rem;padding-bottom:2.25rem}.gdpr-section:last-child{border-bottom:none}.gdpr-section h2{color:var(--hvl-navy);margin:0 0 .75rem;font-size:1.1rem}.gdpr-section p{color:var(--hvl-text);margin:0 0 .75rem;font-size:.95rem;line-height:1.65}.gdpr-section p:last-child{margin-bottom:0}.gdpr-list,.gdpr-data-list{margin:.5rem 0 .75rem;padding-left:1.5rem}.gdpr-list li,.gdpr-data-list li{color:var(--hvl-text);margin-bottom:.4rem;font-size:.95rem;line-height:1.65}.gdpr-data-list{padding-left:0;list-style:none}.gdpr-data-list li{background:var(--hvl-bg-subtle);border-left:3px solid var(--hvl-blue-border);border-radius:0 4px 4px 0;margin-bottom:.6rem;padding:.75rem 1rem}.app-content{flex-direction:column;flex:1;display:flex}.app-header{background-color:var(--hvl-navy);color:var(--hvl-white);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;height:3.5rem;padding:0 1.5rem;display:flex;box-shadow:0 2px 4px #0000003d}.app-header-brand{color:var(--hvl-white);white-space:nowrap;border-bottom:none;flex-shrink:0;align-items:center;gap:.75rem;text-decoration:none;display:flex}.app-header-name{letter-spacing:.02em;color:#ffffffe6;font-size:.95rem;font-weight:600}.app-header-nav{flex:1;justify-content:center;align-items:center;gap:.25rem;display:flex}.app-nav-link{color:#fffc;letter-spacing:.02em;border-bottom:2px solid #0000;border-radius:0;padding:.25rem .85rem;font-size:.9rem;font-weight:600;line-height:2.5rem;text-decoration:none;transition:color .15s,border-bottom-color .15s}.app-nav-link:hover{color:var(--hvl-white);border-bottom-color:#ffffff80}.app-nav-link--active{color:var(--hvl-white);border-bottom-color:var(--hvl-blue-active)}.app-header-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.app-header-catalog{color:var(--hvl-white);letter-spacing:.03em;background:#ffffff17;border:1px solid #fff3;border-radius:999px;align-items:center;padding:.42rem .9rem;font-size:.88rem;font-weight:700;text-decoration:none;transition:background-color .15s,border-color .15s,transform .15s;display:inline-flex}.app-header-catalog:hover{background:#ffffff24;border-color:#ffffff4d;transform:translateY(-1px)}.app-header-settings{opacity:.85;color:var(--hvl-white);align-items:center;font-size:1.25rem;line-height:1;text-decoration:none;transition:opacity .15s;display:flex}.app-header-settings .material-symbols-outlined{font-size:1.4rem}.app-header-settings:hover{opacity:1}.app-header-user{color:#ffffffd9;font-size:.875rem}.app-header-signout{color:var(--hvl-white);cursor:pointer;background-color:#0000;border:1px solid #ffffff80;border-radius:3px;padding:.35rem .85rem;font-size:.875rem;font-weight:600;transition:background-color .15s}.app-header-signout:hover{background-color:#ffffff26}.app-header-signout:focus-visible{outline-offset:2px;outline:3px solid #fffc}.app-main{flex-direction:column;flex:1;display:flex}.app-footer{border-top:1px solid var(--hvl-blue-border);background:var(--hvl-bg);flex-shrink:0;justify-content:center;padding:.75rem 1.5rem;display:flex}.app-footer-link{color:var(--hvl-muted);border-bottom:none;font-size:.8rem;transition:color .15s}.app-footer-link:hover{color:var(--hvl-blue)}.app-loading{background-color:var(--hvl-bg);flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;display:flex}.app-loading-spinner{border:4px solid var(--hvl-blue-border);border-top-color:var(--hvl-navy);border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite app-spin}.app-loading-text{color:var(--hvl-muted);margin:0;font-size:1rem}@keyframes app-spin{to{transform:rotate(360deg)}}.app-header .language-switcher-btn{color:var(--hvl-white);border-color:#ffffff4d}.app-header .language-switcher-btn:hover{color:var(--hvl-white);background:#ffffff24;border-color:#ffffff80}
