/* Scoped to the two training catalog pages; the shared header and DX theme remain owned by Airpocket. */
.box.tv2-shell{min-height:0}.box.tv2-shell>.rowx.content{display:block;min-height:0;overflow:auto;padding:0}.tv2-shell .tv2-page{padding:8px;color:#333;background:#f5f5f5;min-height:100%;font-family:inherit}.tv2-page h2,.tv2-page h3{margin:0;font-size:16px;font-weight:600}.tv2-intro{border:1px solid #ccc;background:white;padding:10px 12px;margin:8px 0;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.tv2-intro span{color:#666;font-size:13px}.tv2-nav{display:flex;gap:10px;border-bottom:1px solid #bbb;background:#eee;padding:9px 12px}.tv2-columns{display:grid;grid-template-columns:minmax(250px,0.8fr) minmax(400px,1.8fr);gap:8px;align-items:start}.tv2-card{background:#fff;border:1px solid #bbb;padding:12px;min-width:0;border-radius:0}.tv2-card-title{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eee;margin:-12px -12px 12px;padding:10px 12px;border-bottom:1px solid #ccc}.tv2-page label{display:block;font-weight:normal;font-size:13px;margin:10px 0 6px}.tv2-page input,.tv2-page select{display:block;width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid #ccc;border-radius:2px;background:#fff;margin-top:5px;color:#333;min-height:34px}.tv2-page button{padding:7px 12px;border:1px solid #bbb;border-radius:2px;background:#f6f6f6;color:#333;cursor:pointer}.tv2-page button:disabled{opacity:.5;cursor:default}.tv2-page input:focus,.tv2-page select:focus,.tv2-page button:focus-visible{outline:2px solid #777;outline-offset:1px}.tv2-list{max-height:52vh;overflow:auto;margin:10px 0}.tv2-page .tv2-module{display:block;text-align:left;width:100%;border:0;border-bottom:1px solid #ddd;border-left:3px solid transparent;background:white;margin:0;white-space:normal;overflow-wrap:anywhere;padding:10px}.tv2-module span,.tv2-module small{display:block;color:#666;margin-top:3px}.tv2-page .tv2-selected{border-left-color:#666;background:#eee}.tv2-alert{padding:9px 12px;margin:8px 0;border:1px solid #ccc;background:#eee;overflow-wrap:anywhere}.tv2-error{background:#fff0f0;color:#9d2525;border-color:#e2baba}.tv2-success{background:#eaf7ee;color:#24663a;border-color:#bcd8c4}.tv2-page fieldset{border:0;padding:0;margin:0;min-width:0}.tv2-status{font-weight:600;background:#eee;border:1px solid #ccc;padding:8px;margin:12px 0}.tv2-actions{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.tv2-hint{font-size:12px;line-height:1.65;color:#666;margin:8px 0}.tv2-empty{padding:12px}.tv2-empty h3{margin-bottom:12px}.tv2-empty li{padding:5px 0}.tv2-form>.tv2-actions{margin:10px 0}.tv2-page .tv2-card .tv2-card{margin:8px 0;background:#fafafa}.box.tv2-shell>.tv2-footer{display:flex;align-items:center;gap:5px;flex-wrap:wrap;flex:0 0 auto;min-height:45px;background:whitesmoke}.tv2-footer-state{margin-left:auto;font-size:12px;color:#555;padding:4px}@media(max-width:800px){.tv2-columns{grid-template-columns:1fr}.tv2-list{max-height:30vh}.tv2-intro{align-items:flex-start;gap:5px;flex-direction:column}.tv2-footer-state{width:100%;margin-left:0}}
.tv2-class-columns{grid-template-columns:minmax(240px,.7fr) minmax(420px,2.3fr)}.tv2-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.tv2-wide{grid-column:1/-1}.tv2-class-section{border-top:1px solid #ccc;margin-top:18px;padding-top:12px}.tv2-class-section h3 span{font-size:13px;color:#666;font-weight:normal;margin-left:8px}.tv2-session-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px;background:#fafafa;border:1px solid #ccc;margin:7px 0}.tv2-session-row span,.tv2-session-row small{display:block;margin-top:4px}.tv2-people-grid{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.tv2-people-grid small{color:#666}.tv2-page .tv2-people-grid .tv2-selected{background:#ddd;border-color:#888}@media(max-width:800px){.tv2-class-columns{grid-template-columns:1fr}.tv2-field-grid{grid-template-columns:1fr}.tv2-session-row{align-items:flex-start;flex-direction:column}}
/* Class workspace uses Airpocket's plum palette and existing DX theme. */
.tv2-classes .tv2-page{background:#f4f3f7;padding:16px}.tv2-class-hero{background:linear-gradient(120deg,#492235,#82415e);color:white;padding:22px 24px;border-radius:12px;display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.tv2-eyebrow{font-size:10px;letter-spacing:1.8px;color:#efd7e2}.tv2-class-hero h2{font-size:23px;margin:7px 0}.tv2-class-hero p{margin:0;color:#f0e0e7;font-size:13px}.tv2-hero-chip{background:#ffffff20;border:1px solid #ffffff40;border-radius:30px;padding:8px 14px;white-space:nowrap}.tv2-classes .tv2-class-columns{grid-template-columns:280px minmax(0,1fr);gap:16px}.tv2-classes .tv2-card{border:1px solid #e5dfe6;border-radius:10px;padding:18px;box-shadow:0 3px 12px #45233305}.tv2-classes .tv2-card-title{margin:-18px -18px 14px;border:0;background:#fff;border-radius:10px 10px 0 0;padding:16px 18px}.tv2-class-sidebar .tv2-list{max-height:52vh}.tv2-classes .tv2-module{border-radius:8px;border:1px solid transparent;margin-bottom:6px;padding:12px}.tv2-classes .tv2-module.tv2-selected{background:#f6eaf0;border-color:#d9b4c7;border-left:3px solid #994563}.tv2-list-meta{display:flex;justify-content:space-between;gap:5px;align-items:center;margin-top:8px}.tv2-status-pill{display:inline-block;font-size:11px;font-weight:600;background:#f7edf2;color:#8c3f60;border-radius:20px;padding:5px 9px;white-space:nowrap}.tv2-status-green{background:#e6f5ef;color:#19785d}.tv2-count{color:#8b4260;background:#f7eef3;border-radius:20px;padding:4px 10px;font-size:12px}.tv2-catalog-links{border-top:1px solid #eee;margin-top:16px;padding-top:14px}.tv2-catalog-links small{color:#8e8290}.tv2-catalog-links nav{display:flex;gap:14px;margin-top:8px}.tv2-catalog-links a{color:#8f4062;font-weight:600}.tv2-sidebar-empty{padding:18px 0;color:#8c7d8c;font-size:12px}.tv2-class-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.tv2-class-stats>div{background:white;border:1px solid #e6dfe7;padding:14px 18px;border-radius:10px;border-top:3px solid #a95778}.tv2-class-stats>div:nth-child(2){border-top-color:#36a28d}.tv2-class-stats>div:nth-child(3){border-top-color:#d5a754}.tv2-class-stats>div:nth-child(4){border-top-color:#5a8ec4}.tv2-class-stats small{display:block;color:#8b7f8b;font-size:10px;letter-spacing:.5px}.tv2-class-stats strong{display:block;font-size:24px;color:#482b3e;margin-top:5px}.tv2-class-stats strong span{font-size:13px;color:#968b95}.tv2-work-card{margin-bottom:16px}.tv2-work-heading{display:flex;gap:12px;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #eee8ef}.tv2-work-heading>div{flex:1}.tv2-work-heading h3{color:#442b3b;font-size:16px}.tv2-work-heading p{color:#958792;font-size:12px;margin:4px 0 0}.tv2-step{background:#f6e8ef;color:#9a4268;border-radius:10px;display:flex;width:36px;height:36px;align-items:center;justify-content:center;font-weight:700}.tv2-step-teal{background:#e7f6f1;color:#278b76}.tv2-step-blue{background:#eaf1fc;color:#4a79b2}.tv2-classes label{color:#66515f;font-size:12px;margin:10px 0 7px}.tv2-classes label span{color:#bc678c}.tv2-classes .tv2-field-grid{gap:4px 18px}.tv2-classes .dx-texteditor{border-radius:6px}.tv2-classes .dx-texteditor-input{margin:0;min-height:36px;border:0;background:transparent;padding:8px 10px;box-sizing:border-box;color:inherit;font:inherit}.tv2-program-summary{padding:10px 12px;background:#fbf5f8;border-radius:7px;color:#793c58}.tv2-program-summary small{margin-left:10px}.tv2-field-hint{color:#996d38;background:#fff9ec;border-radius:6px;padding:8px 12px;font-size:12px;margin:14px 0 0}.tv2-session-editor{padding:14px;background:#faf8fb;border:1px solid #e9e2eb;border-radius:8px}.tv2-session-row{border:1px solid #d9eae4;border-radius:8px;background:#f5fcf9;padding:12px;gap:12px}.tv2-session-info{flex:1;min-width:0}.tv2-session-info strong{color:#287a66}.tv2-session-info span{color:#5c6660;font-size:12px}.tv2-session-info small{color:#7d8b84}.tv2-session-mark{background:#e1f1e9;color:#268368;border-radius:8px;padding:9px 12px;font-weight:600}.tv2-session-actions{display:flex;align-items:center;gap:8px;margin-top:16px;flex-wrap:wrap}.tv2-session-feedback{color:#9c7446;font-size:12px;flex:1;min-width:180px}.tv2-ready{color:#27836a}.tv2-teacher-warning{display:flex;gap:10px;align-items:center;background:#fff5df;border:1px solid #f1dfb8;border-radius:6px;padding:10px;margin-top:10px;font-size:12px;color:#8c662b}.tv2-time-note{margin:10px 0 0}.tv2-classes .tv2-people-grid{gap:9px}.tv2-classes .tv2-people-grid button{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e2dce5;border-radius:8px;padding:10px 12px;text-align:left}.tv2-classes .tv2-people-grid button small{display:block;font-size:10px;margin-top:4px;color:#9b8d98}.tv2-classes .tv2-people-grid .tv2-selected{background:#f9edf3;border-color:#bd7797;color:#813a58}.tv2-selected-heading{font-size:11px;font-weight:600;color:#8f7d8a;margin-top:14px}.tv2-classes .tv2-selected-people button{background:#faf5f8}.tv2-person-initial{background:#eddce6;color:#874263;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.tv2-confirm-note{display:flex;gap:12px;padding:13px 16px;background:#eeeaf5;border-radius:8px;font-size:12px;color:#71617b;margin-bottom:10px}.tv2-confirm-note strong{color:#5c436f;white-space:nowrap}.tv2-class-welcome{text-align:center;padding:50px 24px!important;color:#6a5263}.tv2-welcome-icon{display:inline-flex;background:#f3e5ed;border-radius:20px;padding:12px 22px;font-size:36px;color:#944364;margin-bottom:20px}.tv2-class-welcome h3{font-size:21px}.tv2-class-welcome p{margin:12px 0}.tv2-welcome-steps{display:flex;justify-content:center;gap:12px;margin:24px 0;flex-wrap:wrap}.tv2-welcome-steps span{background:#f7f2f6;padding:10px 14px;border-radius:7px;font-size:12px}.tv2-classes .tv2-footer{border-top:1px solid #e2d9e3;box-shadow:0 -2px 12px #40213306;padding:7px 10px!important}
@media(max-width:1000px){.tv2-classes .tv2-class-columns{grid-template-columns:220px minmax(0,1fr)}.tv2-class-stats{gap:7px}.tv2-class-stats>div{padding:12px}}
@media(max-width:800px){.tv2-classes .tv2-page{padding:10px}.tv2-classes .tv2-class-columns{grid-template-columns:minmax(0,1fr)}.tv2-class-hero{padding:18px;align-items:flex-start}.tv2-class-hero h2{font-size:20px}.tv2-hero-chip{font-size:11px}.tv2-class-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tv2-classes .tv2-field-grid{grid-template-columns:minmax(0,1fr)}.tv2-confirm-note{flex-direction:column;gap:5px}.tv2-session-row{flex-direction:row;flex-wrap:wrap}.tv2-session-info{flex-basis:65%}.tv2-teacher-warning{flex-direction:column;align-items:flex-start}}
/* Catalog pages share the Classes workspace palette and controls. */
.tv2-catalog-nav{display:flex;gap:8px;margin:-3px 0 16px;flex-wrap:wrap}.tv2-catalog-nav a{padding:8px 16px;border:1px solid #e6dae3;background:white;border-radius:20px;color:#82576b;font-size:12px;text-decoration:none}.tv2-catalog-nav a.active{background:#8f4362;border-color:#8f4362;color:white}.tv2-catalog .tv2-class-columns{grid-template-columns:300px minmax(0,1fr)}.tv2-definition-editor{background:#faf5f8;border:1px solid #ead7e2;border-radius:8px;padding:14px;margin-bottom:16px}.tv2-definition-editor h3{font-size:14px;color:#874260}.tv2-version-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px}.tv2-version-action .dx-button{min-height:38px}.tv2-no-version{margin-top:16px;padding:12px;background:#faf5e9;border-radius:7px;color:#92733e;font-size:12px}.tv2-catalog-version{display:flex;align-items:center;gap:10px;margin:4px 0 14px;flex-wrap:wrap}.tv2-catalog-version strong{color:#694453}.tv2-catalog-version small{color:#958891;margin-left:auto}.tv2-unsaved-badge{font-size:11px;color:#a77b32;background:#fff5df;border-radius:20px;padding:5px 9px}.tv2-subject-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.tv2-class-stats .tv2-stat-word{font-size:18px;line-height:1.4;overflow-wrap:anywhere}.tv2-policy-note{background:#f4f8fb;border-left:3px solid #79a0b7;border-radius:6px;padding:12px 14px;margin-top:18px;font-size:12px;color:#6a7c8c}.tv2-policy-note strong{color:#557182}.tv2-policy-note p{margin:5px 0 0;line-height:1.6}.tv2-publish-panel{display:flex;gap:12px;align-items:center;background:#f0ecf7;border:1px solid #e0d7ee;border-radius:9px;padding:16px;margin-bottom:16px}.tv2-publish-panel>div{flex:1}.tv2-publish-panel strong{color:#695078;font-size:13px}.tv2-publish-panel p{font-size:12px;color:#95809e;margin:5px 0 0}.tv2-required-row{display:flex;gap:12px;align-items:center;border:1px solid #e8e1eb;background:#fcfafc;padding:12px;border-radius:8px;margin-bottom:10px}.tv2-required-info{min-width:0;flex:1}.tv2-required-info strong{font-size:13px;color:#664257;overflow-wrap:anywhere}.tv2-required-info small{display:block;color:#a38b9b;font-size:10px;margin-top:5px}.tv2-requirement-code{width:155px}.tv2-requirement-code label{margin:0 0 5px;font-size:10px}.tv2-requirement-actions{display:flex;gap:5px}.tv2-classes .tv2-requirement-actions button{background:white;border-color:#e1d5df;color:#82566c;padding:7px 9px}.tv2-classes .tv2-requirement-actions .tv2-remove{color:#aa627e}.tv2-catalog .tv2-definition-editor .tv2-actions{margin-bottom:0}
@media(max-width:1100px){.tv2-catalog .tv2-class-columns{grid-template-columns:250px minmax(0,1fr)}.tv2-required-row{flex-wrap:wrap}.tv2-required-info{flex-basis:60%}.tv2-version-toolbar{gap:10px}}
@media(max-width:800px){.tv2-catalog .tv2-class-columns{grid-template-columns:minmax(0,1fr)}.tv2-version-toolbar{grid-template-columns:minmax(0,1fr)}.tv2-subject-stats{grid-template-columns:minmax(0,1fr)}.tv2-required-row{align-items:flex-start}.tv2-requirement-code{flex:1;min-width:130px}.tv2-publish-panel{align-items:flex-start;flex-wrap:wrap}.tv2-catalog-version small{margin-left:0;width:100%}}

.tv2-module-version-toolbar{grid-template-columns:auto minmax(0,1fr)}@media(max-width:800px){.tv2-module-version-toolbar{grid-template-columns:minmax(0,1fr)}}
.tv2-workspace-tabs{display:flex;gap:6px;background:#ece5ef;border-radius:8px;padding:5px;margin-bottom:16px}.tv2-classes .tv2-workspace-tabs button{background:transparent;border:0;border-radius:6px;color:#886a7d;padding:10px 16px;flex:1;font-weight:600}.tv2-classes .tv2-workspace-tabs button.active{background:white;color:#8d4160;box-shadow:0 2px 7px #57344914}.tv2-execution-title{background:white;border:1px solid #e6dce7;padding:16px;border-radius:9px}.tv2-execution-select{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr);gap:16px;align-items:center;margin-bottom:16px}.tv2-execution-session-detail{background:#f3faf7;border-radius:7px;padding:12px;color:#4d826e}.tv2-execution-session-detail small{display:block;margin-top:5px;color:#83958c}.tv2-table-scroll{overflow-x:auto;margin:16px 0;border:1px solid #ece5ee;border-radius:8px}.tv2-execution-table{border-collapse:collapse;width:100%;min-width:720px;font-size:12px}.tv2-execution-table th{text-align:left;background:#f8f4f8;color:#825d73;padding:12px;font-weight:600;border-bottom:1px solid #e8dfe9}.tv2-execution-table td{padding:10px 12px;border-bottom:1px solid #eee9f0;vertical-align:middle;min-width:120px}.tv2-execution-table td:first-child{min-width:170px}.tv2-execution-table td:last-child{min-width:190px}.tv2-execution-table tr:last-child td{border-bottom:0}.tv2-execution-table td strong{color:#645062}.tv2-execution-table td small{display:block;color:#988695;margin-top:4px;line-height:1.5}.tv2-result-pill{padding:5px 9px;border-radius:20px;font-size:11px;background:#f0edf4;color:#8c8097;display:inline-block;white-space:nowrap}.tv2-result-pill.passed{background:#e5f4ed;color:#2b8969}.tv2-result-pill.failed{background:#fde9ee;color:#b75672}.tv2-result-pill.incomplete{background:#fff4dc;color:#ab8038}.tv2-result-table{min-width:850px}@media(max-width:800px){.tv2-execution-select{grid-template-columns:minmax(0,1fr)}.tv2-execution-title{gap:8px}.tv2-execution-title h3{font-size:14px}}

.tv2-class-main,.tv2-execution-workspace{min-width:0}.tv2-table-scroll{max-width:100%}

/* Program completion workspace */
.tv2-completions .tv2-credit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tv2-completions .tv2-credit-card{min-width:0;border:1px solid #e4e9f2;border-radius:15px;padding:19px;background:linear-gradient(145deg,#fff,#f8faff)}
.tv2-completions .tv2-credit-ready{border-color:#b8ddcb;background:linear-gradient(145deg,#fff,#f2fbf7)}
.tv2-completions .tv2-credit-heading{display:flex;align-items:center;justify-content:space-between;color:#7b879b}
.tv2-completions .tv2-credit-card h4{font-size:17px;margin:14px 0 4px;color:#263958;line-height:1.4}
.tv2-completions .tv2-credit-detail{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:12px;color:#738099;margin-top:15px}
.tv2-completions .tv2-credit-detail b{display:block;color:#334d6c;font-weight:600}
.tv2-completions .tv2-credit-warning{font-size:12px;color:#b05735;background:#fff3e9;padding:10px;border-radius:9px;margin:12px 0}
.tv2-completions .tv2-credit-saved{display:block;border-top:1px solid #e5ebf1;padding-top:12px;margin-top:15px;color:#738099;line-height:1.7}
.tv2-completions .tv2-completion-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px}
.tv2-completions button.tv2-primary-action{background:#416cce;border:1px solid #416cce;color:#fff;border-radius:10px;padding:11px 17px;font-weight:600}
.tv2-completions button.tv2-primary-action:disabled{opacity:.45;cursor:default}
.tv2-completions .tv2-class-stats strong.tv2-date-stat{font-size:17px;line-height:1.8}
@media(max-width:1100px){.tv2-completions .tv2-credit-grid{grid-template-columns:1fr}}

/* Training workspace redesign — scoped; Airpocket header and Person pages untouched. */
.tv2-shell .tv2-page{padding:22px;background:#f5f4f8;min-height:100%;box-sizing:border-box}
.tv2-shell .tv2-card{border:1px solid #e5dfe9;border-radius:14px;box-shadow:0 3px 14px #34213e05}
.tv2-shell .tv2-work-heading{border-bottom:1px solid #eee8f0;padding-bottom:15px;margin-bottom:20px}
.tv2-shell .tv2-work-heading h3{color:#45334d;font-size:17px}
.tv2-shell .tv2-page .dx-texteditor{border:1px solid #c9bfce!important;border-bottom:2px solid #b5a4be!important;border-radius:8px;background:#fff;box-shadow:0 1px 2px #35204004;transition:border-color .15s,box-shadow .15s}
.tv2-shell .tv2-page .dx-texteditor.dx-state-hover{border-color:#9674a5!important}
.tv2-shell .tv2-page .dx-texteditor.dx-state-focused{border-color:#92516e!important;box-shadow:0 0 0 3px #92516e18}
.tv2-shell .tv2-page .dx-texteditor.dx-state-disabled,.tv2-shell .tv2-page .dx-texteditor.dx-state-readonly{background:#f0eef3;border-color:#ddd6e2!important;box-shadow:none}
.tv2-shell .tv2-page .dx-invalid.dx-texteditor{border-color:#c44f66!important}
.tv2-shell .tv2-page .dx-texteditor-input{padding:10px 12px;min-height:40px;background:transparent}
.tv2-shell .tv2-page input:not(.dx-texteditor-input):not([type=checkbox]):not([type=radio]),.tv2-shell .tv2-page select,.tv2-shell .tv2-page textarea{border:1px solid #c9bfce;border-bottom:2px solid #b5a4be;border-radius:8px;padding:10px 12px;background:#fff;color:#45334d;min-height:42px;box-sizing:border-box;max-width:100%}
.tv2-shell .tv2-page select:focus,.tv2-shell .tv2-page input:focus,.tv2-shell .tv2-page textarea:focus{outline:2px solid #92516e55;outline-offset:2px}
.tv2-shell .tv2-page .dx-texteditor-input:focus{outline:none}
.tv2-shell .tv2-page label{color:#615069;font-weight:600;font-size:12px;line-height:1.5}
.tv2-shell button:focus-visible,.tv2-shell a:focus-visible{outline:3px solid #976087;outline-offset:3px}
.tv2-shell .tv2-footer{height:auto!important;min-height:58px;padding:10px 18px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid #e0d7e6;background:#fff;box-sizing:border-box}
.tv2-classes:not(.tv2-catalog):not(.tv2-completions) .tv2-class-columns{display:block}
.tv2-directory{width:100%;min-width:0}
.tv2-directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.tv2-directory-toolbar h2,.tv2-detail-heading h2{font-size:23px;line-height:1.3;margin:0;color:#443149;font-weight:600}
.tv2-directory-toolbar p,.tv2-detail-heading p{margin:7px 0 0;color:#82718b;font-size:13px}
.tv2-directory-filters{display:grid;grid-template-columns:minmax(200px,1fr) auto;gap:18px;align-items:center;padding:16px;background:#fff;border:1px solid #e5dfe9;border-radius:12px;margin-bottom:22px}
.tv2-shell .tv2-status-filter{display:flex;align-items:center;gap:10px;margin:0!important}.tv2-status-filter select{min-width:165px}
.tv2-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tv2-classes button.tv2-directory-card{display:block;text-align:left;background:#fff;border:1px solid #e2d9e8;border-radius:15px;padding:22px;color:#4b3954;width:100%;min-width:0;white-space:normal;box-shadow:0 3px 14px #40234605;transition:transform .15s,border-color .15s,box-shadow .15s;cursor:pointer}
.tv2-classes button.tv2-directory-card:hover:enabled{transform:translateY(-3px);border-color:#b586a0;box-shadow:0 9px 25px #65445c12;background:#fff}
.tv2-directory-card-top,.tv2-directory-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tv2-class-code{font-size:11px;font-weight:700;letter-spacing:.6px;color:#947389;overflow-wrap:anywhere}
.tv2-directory-card h3{font-size:20px;line-height:1.35;margin:20px 0 6px;color:#443149;overflow-wrap:anywhere}
.tv2-course-name{font-size:12px;color:#8b7c92;line-height:1.5;margin:0 0 14px;overflow-wrap:anywhere}
.tv2-directory-tags{display:flex;gap:7px;flex-wrap:wrap}.tv2-directory-tags span{background:#f2edf7;color:#77578c;border-radius:5px;padding:5px 8px;font-size:11px}.tv2-directory-tags span+span{background:#eaf5f2;color:#4e8171}
.tv2-directory-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;margin:22px 0}
.tv2-directory-facts div{min-width:0}.tv2-directory-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#9c8fa3;margin-bottom:6px;font-weight:600}.tv2-directory-facts dd{font-size:13px;font-weight:500;color:#594760;margin:0;line-height:1.55;overflow-wrap:anywhere}
.tv2-directory-card-bottom{border-top:1px solid #eee7f1;padding-top:16px;font-size:11px;color:#8b7c92}.tv2-directory-card-bottom strong{color:#954b6c;font-size:12px}
.tv2-directory-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:20px 0;color:#8b7c92}
.tv2-directory-empty{text-align:center;padding:65px 20px;border:1px dashed #ccbcd4;border-radius:14px;background:#faf8fc;color:#897392}.tv2-directory-empty h3{color:#5a4166}
.tv2-detail-heading{display:flex;align-items:center;gap:22px;background:#fff;border:1px solid #e4dce9;border-radius:14px;padding:22px;margin-bottom:20px}.tv2-detail-heading>div{flex:1;min-width:0}.tv2-detail-heading h2{overflow-wrap:anywhere}.tv2-detail-heading small{display:block;color:#987c90;font-size:11px;margin-bottom:6px}
.tv2-classes button.tv2-back-button{background:#f6f1f8;color:#80566e;border:1px solid #dccddd;border-radius:8px;padding:10px 14px;white-space:nowrap}
.tv2-shell .tv2-workspace-tabs{background:#eae3ee;padding:6px;border-radius:10px}.tv2-shell .tv2-workspace-tabs button{min-height:42px}
.tv2-shell .tv2-catalog-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tv2-shell .tv2-catalog-nav a{padding:9px 14px;border-radius:8px}
@media(min-width:1800px){.tv2-directory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.tv2-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.tv2-shell .tv2-page{padding:12px}.tv2-directory-grid{grid-template-columns:1fr;gap:14px}.tv2-directory-filters{grid-template-columns:1fr;gap:12px}.tv2-status-filter select{flex:1;min-width:0}.tv2-detail-heading{flex-wrap:wrap;padding:16px;gap:14px}.tv2-detail-heading>div{flex-basis:70%}.tv2-detail-heading>.tv2-back-button{width:100%}.tv2-directory-toolbar h2,.tv2-detail-heading h2{font-size:20px}.tv2-classes button.tv2-directory-card{padding:18px}.tv2-shell .tv2-field-grid{grid-template-columns:minmax(0,1fr)}.tv2-shell .tv2-field-grid .tv2-wide{grid-column:auto}.tv2-directory-bottom{align-items:flex-start;flex-direction:column}.tv2-shell .tv2-footer{padding:8px;gap:6px}.tv2-shell .tv2-footer .dx-button{min-height:40px}.tv2-shell .tv2-class-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tv2-shell .tv2-work-card{padding:16px}}
@media(prefers-reduced-motion:reduce){.tv2-classes button.tv2-directory-card{transition:none;transform:none!important}}
/* Row directory, with retained status and training tags. */
.tv2-table-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;background:#fff;border:1px solid #e5dfe9;border-radius:14px;padding:18px;margin-bottom:20px}
.tv2-table-filters>div{min-width:0}.tv2-shell .tv2-table-filters label{margin:0 0 7px}.tv2-table-filters input,.tv2-table-filters select{width:100%;margin:0!important}
.tv2-filter-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.tv2-shell .tv2-filter-actions button{padding:11px 16px;border-radius:8px;min-height:42px}.tv2-shell button.tv2-filter-primary{background:#964469;border-color:#964469;color:#fff}
.tv2-directory-table-wrap{background:#fff;border:1px solid #e3dae8;border-radius:14px;margin-top:0}
.tv2-directory-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:auto;text-align:left;font-size:13px}
.tv2-directory-table th{background:#f9f6fb;color:#887390;padding:16px 18px;font-size:11px;letter-spacing:.3px;white-space:nowrap;border-bottom:1px solid #e8e0ed;font-weight:600}
.tv2-directory-table td{padding:18px;vertical-align:middle;color:#5a4762;border-bottom:1px solid #eee8f1;line-height:1.6;max-width:270px;overflow-wrap:anywhere}
.tv2-directory-table td:first-child{min-width:210px}.tv2-directory-table td strong{display:block;font-size:14px;font-weight:600;color:#48344f;margin:4px 0}.tv2-directory-table td small{display:block;font-size:11px;color:#97839f}.tv2-directory-table tbody tr{cursor:pointer;transition:background .15s}.tv2-directory-table tbody tr:hover{background:#fcf8fc}.tv2-directory-table tbody tr:last-child td{border-bottom:0}.tv2-directory-table .tv2-date-cell{white-space:nowrap}
.tv2-directory-table .tv2-directory-tags{max-width:150px}.tv2-directory-table .tv2-status-pill{white-space:nowrap}.tv2-shell button.tv2-table-open{border:1px solid #e3d3e2;border-radius:8px;background:#f9f3f8;color:#984a6d;padding:8px 11px;white-space:nowrap}.tv2-directory-table tr.tv2-row-busy{cursor:wait}.tv2-directory-table td.tv2-table-empty{text-align:center;padding:50px;max-width:none;color:#8c7797;cursor:default}
@media(max-width:1000px){.tv2-table-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.tv2-table-filters{grid-template-columns:1fr;padding:14px;gap:12px}.tv2-filter-actions button{flex:1}.tv2-directory-table td{padding:14px}.tv2-directory-table th{padding:14px}}

/* Airpocket training — clear operations theme, October 2026.
   All rules are scoped to the training shell; shared application surfaces retain their theme. */
.tv2-shell{--tr-ink:#24383f;--tr-muted:#4e636c;--tr-line:#aebdc4;--tr-paper:#fff;--tr-ground:#e7ecef;--tr-dark:#304852;--tr-wine:#542638;--tr-gold:#b38c32}
.tv2-shell .tv2-page{background:var(--tr-ground);color:var(--tr-ink);padding:16px;font-size:14px;line-height:1.55}
.tv2-shell .tv2-page *{box-sizing:border-box}
.tv2-shell .tv2-page :is(.tv2-card,.tv2-work-card,.tv2-card-title,.tv2-module,.tv2-stage-nav,.tv2-stage-nav button,.tv2-workflow-nav a,.tv2-status-pill,.tv2-count,.tv2-result-pill,.tv2-session-row,.tv2-session-editor,.tv2-policy-note,.tv2-publish-panel,.tv2-credit-card,.tv2-class-stats,.tv2-class-stats>div,.tv2-people-grid button,.tv2-directory-tags span,.tv2-alert,.tv2-table-scroll,.tv2-directory-table-wrap,.tv2-table-filters,.tv2-detail-heading,.tv2-workspace-tabs,.tv2-workspace-tabs button,.tv2-program-summary,.tv2-confirm-note,.tv2-required-row,.tv2-catalog-version,.tv2-no-version,.tv2-execution-title,.tv2-execution-session-detail,.dx-button,.dx-texteditor){border-radius:0!important;box-shadow:none!important;background-image:none!important}
.tv2-shell .tv2-page h2,.tv2-shell .tv2-page h3,.tv2-shell .tv2-page h4{color:var(--tr-ink);font-weight:700;line-height:1.35}
.tv2-shell .tv2-page h3{font-size:17px}
.tv2-shell .tv2-page p,.tv2-shell .tv2-page small,.tv2-shell .tv2-hint,.tv2-shell .tv2-course-name,.tv2-shell .tv2-time-note,.tv2-shell .tv2-session-info small,.tv2-shell .tv2-module small,.tv2-shell .tv2-module span{color:var(--tr-muted)}
.tv2-shell .tv2-page .tv2-field-hint{color:#853d11;background:#fff4de;border-left:3px solid #aa721c;padding:9px 12px;font-size:13px}
.tv2-shell .tv2-page label{font-size:13px;font-weight:700;color:#273e47;margin:10px 0 7px}
.tv2-shell .tv2-page a{color:#164c6b;font-weight:600}
.tv2-shell .tv2-page button{border-radius:0;font-weight:600;font-size:13px;min-height:38px}
.tv2-shell .tv2-page button:disabled{opacity:1;background:#e4e9ec!important;border-color:#c3cdd2!important;color:#697b83!important;cursor:not-allowed}
.tv2-shell .tv2-page .dx-button{border:1px solid #9aadb6;background:#fff;color:#304852;min-height:40px}
.tv2-shell .tv2-page .dx-button.dx-button-default{background:#304852;border-color:#304852;color:#fff}
.tv2-shell .tv2-page .dx-button.dx-button-success{background:#24634b;border-color:#24634b;color:#fff}
.tv2-shell .tv2-page .dx-button.dx-state-disabled{opacity:1;background:#e4e9ec;color:#697b83;border-color:#c3cdd2}
.tv2-shell .tv2-page .dx-button .dx-icon{color:inherit}
.tv2-shell .tv2-page .dx-texteditor{background:#fff;border:1px solid #8299a4!important;border-bottom:2px solid #6d858f!important;border-radius:0!important}
.tv2-shell .tv2-page .dx-texteditor.dx-state-focused{border-color:#304852!important;outline:2px solid #c3a650;outline-offset:1px;box-shadow:none}
.tv2-shell .tv2-page .dx-texteditor.dx-state-disabled,.tv2-shell .tv2-page .dx-texteditor.dx-state-readonly{background:#e9eef0;border-color:#b2c0c6!important}
.tv2-shell .tv2-page .dx-texteditor-input{color:#1f343e;font-size:14px;min-height:42px}
.tv2-shell .tv2-page .dx-placeholder{color:#576c76}
.tv2-shell .tv2-page input:not(.dx-texteditor-input):not([type=checkbox]):not([type=radio]),.tv2-shell .tv2-page select,.tv2-shell .tv2-page textarea{border:1px solid #8299a4;border-bottom:2px solid #6d858f;border-radius:0;background:#fff;color:#1f343e;font-size:14px;min-height:42px}
.tv2-shell .tv2-page input::placeholder{color:#576c76;opacity:1}
.tv2-shell .tv2-page button:focus-visible,.tv2-shell .tv2-page a:focus-visible{outline:3px solid #a67916;outline-offset:2px}
.tv2-shell .tv2-workflow-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#aebdc4;border:1px solid #aebdc4;margin-bottom:14px}
.tv2-shell .tv2-workflow-nav a{display:block;padding:12px 16px;background:#f4f7f8;text-decoration:none;color:#304852;border-bottom:3px solid transparent}
.tv2-shell .tv2-workflow-nav a strong{display:block;font-size:15px;font-weight:700}.tv2-shell .tv2-workflow-nav a span{display:block;font-size:11px;color:#49606a;margin-top:3px}
.tv2-shell .tv2-workflow-nav a.active{background:#304852;color:white;border-bottom-color:#c6a045}.tv2-shell .tv2-workflow-nav a.active span{color:#e2ebef}.tv2-shell .tv2-workflow-nav a:hover:not(.active){background:#dce5e9}
.tv2-shell .tv2-page-purpose{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid #adbcc3;padding:0 0 12px;margin-bottom:16px}.tv2-shell .tv2-page-purpose>strong{font-size:19px;color:#263e48}.tv2-shell .tv2-page-purpose>span{color:#405761;font-size:13px}
.tv2-shell .tv2-stage-nav{display:flex;gap:1px;margin-bottom:18px;background:#b6c4ca;border:1px solid #b6c4ca;overflow:hidden}
.tv2-shell .tv2-stage-nav button{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex:1;min-width:0;padding:12px 14px;background:#f5f8f9;color:#3d5661;border:0;border-bottom:3px solid transparent;text-align:left;white-space:normal;font-size:13px}
.tv2-shell .tv2-stage-nav button b{display:grid;place-items:center;background:#dce5e9;border:1px solid #bac8ce;color:#304852;min-width:27px;height:27px;font-size:14px}
.tv2-shell .tv2-stage-nav button.active{background:#304852!important;color:#fff!important;border-bottom-color:#c6a045}.tv2-shell .tv2-stage-nav button.active b{background:#c6a045;border-color:#c6a045;color:#24383f}.tv2-shell .tv2-stage-nav button:hover:not(.active):enabled{background:#e1eaee}
.tv2-shell .tv2-stage-actions{display:flex;align-items:center;gap:12px;border-top:1px solid #aebdc4;padding:16px 0 4px;margin-top:16px}.tv2-shell .tv2-stage-actions span{color:#405761;font-size:12px;flex:1}.tv2-shell .tv2-stage-actions button{padding:10px 20px;background:white;border:1px solid #8fa3ad;color:#304852}.tv2-shell .tv2-stage-actions button.tv2-next{margin-left:auto;background:#304852;color:#fff;border-color:#304852}
.tv2-shell .tv2-stage-result{padding:20px;background:#eef6f1;border:1px solid #81aa94;border-left:4px solid #24634b}.tv2-shell .tv2-stage-result strong{color:#1a523b;font-size:18px}.tv2-shell a.tv2-next-link{display:inline-block;background:#304852;color:#fff;padding:10px 18px;text-decoration:none;margin-top:8px}
.tv2-shell .tv2-card{background:#fff;border:1px solid #aebdc4;padding:20px;margin-bottom:16px}
.tv2-shell .tv2-card-title{background:#dce5e9;border-bottom:1px solid #aebdc4;margin:-20px -20px 16px;padding:13px 20px}
.tv2-shell .tv2-card-title h3{color:#273f49;font-size:16px}
.tv2-shell .tv2-work-heading{border-bottom:1px solid #b5c3c9;padding-bottom:14px;margin-bottom:18px}.tv2-shell .tv2-work-heading p{font-size:13px;margin-top:4px}.tv2-shell .tv2-step{border-radius:0;background:#304852;color:#fff;width:32px;height:32px;font-weight:700}
.tv2-shell .tv2-class-sidebar .tv2-list{max-height:58vh}.tv2-shell .tv2-module{padding:13px;border-bottom:1px solid #c5d0d6;border-left:4px solid transparent}.tv2-shell .tv2-module strong{color:#233d48;font-size:14px}.tv2-shell .tv2-module.tv2-selected{background:#e0e9ed;border-left-color:#542638}.tv2-shell .tv2-module:hover:enabled{background:#edf2f5}
.tv2-shell .tv2-class-welcome{padding:26px;background:#f7fafb;border:1px solid #afc0c8;text-align:left}.tv2-shell .tv2-welcome-icon{display:none}.tv2-shell .tv2-welcome-steps{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-start;margin:18px 0}.tv2-shell .tv2-welcome-steps span{background:#dce5e9;color:#2e4751;border:1px solid #b2c3cb;padding:8px 12px;border-radius:0}
.tv2-shell .tv2-class-stats{gap:1px;background:#b6c5cc;border:1px solid #b6c5cc;margin-bottom:16px}.tv2-shell .tv2-class-stats>div{background:#f4f7f9;padding:14px 16px;border:0}.tv2-shell .tv2-class-stats small{color:#405761;font-size:11px;font-weight:700}.tv2-shell .tv2-class-stats strong{color:#273f49;font-size:24px}.tv2-shell .tv2-class-stats strong span{color:#4b626c}
.tv2-shell .tv2-status-pill,.tv2-shell .tv2-result-pill{background:#e3e9ed;color:#314a56;border:1px solid #acbdc6;padding:5px 9px;font-weight:700;font-size:11px}.tv2-shell .tv2-status-green,.tv2-shell .tv2-result-pill.passed{background:#e1efe6;color:#20533c;border-color:#86ad96}.tv2-shell .tv2-result-pill.failed{background:#f9e6e2;color:#8d3328;border-color:#cd9287}.tv2-shell .tv2-result-pill.incomplete{background:#fff2d4;color:#795815;border-color:#bda368}.tv2-shell .tv2-count{background:#dce5e9;color:#304852;border:1px solid #b0c1c9}
.tv2-shell .tv2-directory-tags span{background:#e6e4f0;color:#443b68;border:1px solid #b3afcb}.tv2-shell .tv2-directory-tags span+span{background:#dfeeea;color:#23594f;border:1px solid #98b6ae}
.tv2-shell .tv2-policy-note,.tv2-shell .tv2-confirm-note{background:#edf3f6;border:1px solid #b0c2cb;border-left:4px solid #304852;padding:14px 16px;color:#304852}.tv2-shell .tv2-policy-note strong,.tv2-shell .tv2-confirm-note strong{color:#263f49}.tv2-shell .tv2-publish-panel{background:#fff8e9;border:1px solid #c0ab71;border-left:4px solid #a07c25}.tv2-shell .tv2-publish-panel strong{color:#614a16}.tv2-shell .tv2-publish-panel p{color:#655428}
.tv2-shell .tv2-alert{background:#edf3f6;color:#304852;border:1px solid #a9bec9;border-left:4px solid #304852;padding:12px 16px}.tv2-shell .tv2-error{background:#fff0ed;color:#85362a;border-color:#d1a298;border-left-color:#ad4838}.tv2-shell .tv2-success{background:#edf6f0;color:#245840;border-color:#9bbda9;border-left-color:#327654}
.tv2-shell .tv2-session-row{border:1px solid #b6c5cc;background:#f5f8f9;padding:14px}.tv2-shell .tv2-session-info strong{color:#243e49}.tv2-shell .tv2-session-info span{color:#405963}.tv2-shell .tv2-session-mark{border-radius:0;background:#dbe6eb;color:#304852;font-weight:700}.tv2-shell .tv2-session-editor{background:#f2f6f8;border:1px solid #b9c9d1;padding:18px}.tv2-shell .tv2-session-feedback{color:#78501c}.tv2-shell .tv2-session-feedback.tv2-ready{color:#24634b}
.tv2-shell .tv2-people-grid button{border:1px solid #b2c3cb;background:#f7fafb;color:#263f49;padding:12px}.tv2-shell .tv2-people-grid button.tv2-selected{background:#e1eee8;border-color:#7b9e8b}.tv2-shell .tv2-person-initial{border-radius:0;background:#dce6eb;color:#304852}
.tv2-shell .tv2-workspace-tabs{background:#b0bec5;gap:1px;padding:1px}.tv2-shell .tv2-workspace-tabs button{background:#f3f7f9;color:#304852}.tv2-shell .tv2-workspace-tabs button.active{background:#542638;color:#fff;border-bottom:3px solid #c6a045}
.tv2-shell .tv2-detail-heading{border:1px solid #adbec7;background:#fff;padding:16px 20px;gap:16px}.tv2-shell .tv2-detail-heading h2{font-size:21px;color:#273f49}.tv2-shell .tv2-detail-heading small{color:#49636e}.tv2-shell button.tv2-back-button{border-radius:0;background:#e7eef2;border:1px solid #9fb3be;color:#304852}
.tv2-shell .tv2-directory-toolbar{margin:4px 0 16px}.tv2-shell .tv2-directory-toolbar h2{color:#263f49}.tv2-shell .tv2-directory-toolbar p{color:#405761}.tv2-shell .tv2-table-filters{border:1px solid #aebfc7;background:#f6f9fa}.tv2-shell button.tv2-filter-primary{background:#304852;border-color:#304852;color:#fff}
.tv2-shell .tv2-directory-table th,.tv2-shell .tv2-execution-table th{background:#dce5e9;color:#2e4751;border-bottom:1px solid #9eb3bd;font-weight:700;font-size:12px}.tv2-shell .tv2-directory-table td,.tv2-shell .tv2-execution-table td{color:#273f49;border-bottom:1px solid #c7d3d9}.tv2-shell .tv2-directory-table tbody tr:nth-child(even),.tv2-shell .tv2-execution-table tbody tr:nth-child(even){background:#f3f7f9}.tv2-shell .tv2-directory-table tbody tr:hover{background:#e4edf1}.tv2-shell .tv2-directory-table td strong{color:#233b46}.tv2-shell .tv2-directory-table td small{color:#49616c}.tv2-shell .tv2-class-code{color:#62394f}.tv2-shell button.tv2-table-open{background:#e9eff2;color:#304852;border:1px solid #a7bbc4;border-radius:0}
.tv2-shell .tv2-credit-card{background:#f5f8fa;border:1px solid #aebfc7}.tv2-shell .tv2-credit-ready{background:#eef6f1;border-color:#8cad9a}.tv2-shell .tv2-credit-card h4{color:#263f49}.tv2-shell .tv2-credit-detail,.tv2-shell .tv2-credit-saved{color:#405761}.tv2-shell .tv2-credit-warning{border-radius:0;background:#fff1d3;color:#795018;border:1px solid #ccb47b}.tv2-shell button.tv2-primary-action{border-radius:0;background:#304852;color:#fff;border-color:#304852}.tv2-shell .tv2-required-row{background:#f4f8fa;border-color:#adbec7}.tv2-shell .tv2-required-info strong{color:#273f49}
.tv2-shell .tv2-review-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;border:1px solid #b1c3cc}.tv2-shell .tv2-review-list>div{padding:13px 16px;border-bottom:1px solid #c7d4da;min-width:0}.tv2-shell .tv2-review-list dt{color:#49616c;font-size:11px;text-transform:uppercase;font-weight:700}.tv2-shell .tv2-review-list dd{color:#243d48;font-size:15px;margin:4px 0;overflow-wrap:anywhere}
.tv2-shell .tv2-footer{border-top:1px solid #9cafb8;background:#dce5e9;padding:10px 16px;gap:8px}.tv2-shell .tv2-footer .dx-button{border-radius:0;border:1px solid #91a6b0;background:white;color:#304852;min-height:40px;box-shadow:none}.tv2-shell .tv2-footer .dx-button-default{background:#304852;border-color:#304852;color:white}.tv2-shell .tv2-footer .dx-button-success{background:#24634b;border-color:#24634b;color:white}.tv2-shell .tv2-footer .dx-state-disabled{opacity:1;background:#cdd8dd;color:#627780}.tv2-shell .tv2-footer-state{color:#2d4854;font-weight:600}
@media(max-width:1100px){.tv2-shell .tv2-stage-nav button{padding:10px;gap:7px}.tv2-shell .tv2-stage-nav button span{font-size:12px}}
@media(max-width:800px){.tv2-shell .tv2-page{padding:10px}.tv2-shell .tv2-workflow-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.tv2-shell .tv2-workflow-nav a{padding:10px}.tv2-shell .tv2-page-purpose{display:block}.tv2-shell .tv2-page-purpose span{display:block;margin-top:4px}.tv2-shell .tv2-stage-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tv2-shell .tv2-stage-nav button{min-height:60px}.tv2-shell .tv2-card{padding:16px}.tv2-shell .tv2-card-title{margin:-16px -16px 14px;padding:12px 16px}.tv2-shell .tv2-stage-actions{flex-wrap:wrap}.tv2-shell .tv2-stage-actions span{order:3;flex-basis:100%}.tv2-shell .tv2-review-list{grid-template-columns:1fr}.tv2-shell .tv2-class-sidebar .tv2-list{max-height:28vh}}
.tv2-shell .tv2-page *{border-radius:0!important}
.tv2-shell .tv2-task-note{display:flex;gap:14px;align-items:baseline;margin:-5px 0 18px;padding:11px 14px;background:#f5f8fa;border:1px solid #b4c5ce;border-left:4px solid #304852;color:#344e59;font-size:13px}.tv2-shell .tv2-task-note strong{white-space:nowrap;color:#263f49}.tv2-shell .tv2-directory-table td small,.tv2-shell .tv2-stage-nav button span,.tv2-shell .tv2-workflow-nav a span,.tv2-shell .tv2-class-stats small{font-size:12px}
@media(max-width:550px){.tv2-shell .tv2-task-note{display:block}.tv2-shell .tv2-task-note strong{display:block;margin-bottom:4px}}
.tv2-shell .tv2-review-checks{margin:16px 0;border:1px solid #b2c4cd}.tv2-shell .tv2-review-checks>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #c7d4da;background:#f4f8fa;color:#304852}.tv2-shell .tv2-review-checks>div:last-child{border-bottom:0}.tv2-shell .tv2-review-checks button{background:#fff;color:#304852;border:1px solid #9db2bc;white-space:nowrap}@media(max-width:550px){.tv2-shell .tv2-review-checks>div{flex-wrap:wrap}}

/* Separate calendar date and typed 24-hour time. */
.tv2-shell .tv2-date-time-pair{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:end}.tv2-shell .tv2-date-time-pair>div{min-width:0}.tv2-shell .tv2-date-time-pair label{font-size:12px;margin:0 0 5px}.tv2-shell .tv2-page .tv2-date-time-pair .tv2-time-input{width:100%;height:46px;margin:0;direction:ltr;font-variant-numeric:tabular-nums;letter-spacing:1px}.tv2-shell .tv2-date-time-pair .dx-datebox{width:100%!important}@media(max-width:400px){.tv2-shell .tv2-date-time-pair{grid-template-columns:minmax(0,1fr) 105px;gap:8px}}

/* Dual-calendar entry and context-sensitive footer actions. */
.tv2-shell .tv2-dual-date>label{margin:8px 0 5px}.tv2-shell .tv2-dual-date input{width:100%;font-variant-numeric:tabular-nums}.tv2-shell .tv2-date-time-pair{align-items:start}.tv2-shell .tv2-date-time-pair>div:last-child{padding-top:8px}.tv2-shell .tv2-shamsi-output{direction:ltr;unicode-bidi:plaintext;font-variant-numeric:tabular-nums}.tv2-shell .tv2-footer button{padding:10px 14px;min-height:40px;background:#fff;border:1px solid #91a6b0;border-radius:0;color:#304852;font-size:13px;font-weight:600}.tv2-shell .tv2-footer button.tv2-footer-primary{background:#304852;border-color:#304852;color:white}.tv2-shell .tv2-footer button:disabled{background:#cdd8dd;color:#627780;cursor:not-allowed}.tv2-shell .tv2-footer button:focus-visible{outline:3px solid #a67916;outline-offset:2px}.tv2-shell .tv2-date-time-pair .tv2-time-input{height:46px}

/* Compact class filters; isolated from forms in other training pages. */
.tv2-shell .tv2-table-filters.tv2-compact-filters{display:block;padding:14px 16px;margin:0 0 16px;background:#f5f8fa}
.tv2-shell .tv2-filter-main-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(160px,1fr) minmax(180px,1.1fr);gap:14px;max-width:1400px}
.tv2-shell .tv2-filter-main-row>div,.tv2-shell .tv2-filter-calendar-pair>div{min-width:0}
.tv2-shell .tv2-filter-date-row{display:grid;grid-template-columns:minmax(280px,380px) minmax(280px,380px) auto;align-items:end;gap:14px 20px;margin-top:14px;padding-top:12px;border-top:1px solid #c0ced5;max-width:1400px}
.tv2-shell .tv2-filter-date-group{min-width:0}.tv2-shell .tv2-filter-date-group>strong{display:block;color:#304852;font-size:13px;margin:0 0 5px}
.tv2-shell .tv2-filter-calendar-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.tv2-shell .tv2-compact-filters label{font-size:12px;margin:0 0 5px}
.tv2-shell .tv2-compact-filters input,.tv2-shell .tv2-compact-filters select{width:100%;min-height:38px!important;height:40px;padding:7px 10px!important;font-size:13px!important;margin:0!important}
.tv2-shell .tv2-compact-filters .dx-texteditor-input{min-height:38px!important;height:38px;padding:7px 10px!important;font-size:13px!important}.tv2-shell .tv2-compact-filters .dx-texteditor{min-height:40px}
.tv2-shell .tv2-filter-local-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;align-self:end;padding-bottom:0}
.tv2-shell .tv2-filter-local-actions button{height:40px;min-height:40px;padding:8px 15px;white-space:nowrap;border:1px solid #91a6b0;background:white;color:#304852}
.tv2-shell .tv2-filter-local-actions .tv2-filter-primary{background:#304852;border-color:#304852;color:#fff}
.tv2-shell .tv2-filter-date-group .tv2-field-hint{display:block;margin:6px 0 0}
@media(max-width:1100px){.tv2-shell .tv2-filter-main-row{grid-template-columns:repeat(3,minmax(0,1fr))}.tv2-shell .tv2-filter-date-row{grid-template-columns:repeat(2,minmax(0,1fr))}.tv2-shell .tv2-filter-local-actions{grid-column:1/-1}}
@media(max-width:650px){.tv2-shell .tv2-table-filters.tv2-compact-filters{padding:12px}.tv2-shell .tv2-filter-main-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tv2-shell .tv2-filter-date-row{grid-template-columns:1fr;gap:12px}.tv2-shell .tv2-filter-calendar-pair{gap:8px}.tv2-shell .tv2-filter-local-actions{grid-column:auto}}
@media(max-width:380px){.tv2-shell .tv2-filter-main-row{grid-template-columns:1fr}}

.tv2-shell .tv2-roster-panel .tv2-execution-table{min-width:1050px}.tv2-shell .tv2-roster-panel .tv2-roster-blocked{background:#fff0ed!important}.tv2-shell .tv2-roster-panel .tv2-roster-skipped{background:#fff6df!important}.tv2-shell .tv2-roster-panel .tv2-roster-unchanged{background:#eef6f0!important}.tv2-shell .tv2-roster-panel td:last-child{min-width:250px}

.tv2-shell .tv2-certificate-download{padding:9px 12px;min-height:40px;border:1px solid #91a6b0;background:#fff;color:#304852;white-space:nowrap}
.tv2-shell .tv2-certificate-download:disabled{background:#e7eef2;color:#627780;cursor:not-allowed}
.tv2-shell .tv2-certificate-panel .tv2-work-heading{flex-wrap:wrap}

.tv2-shell .tv2-external-certificates button{padding:9px 12px;min-height:38px;background:#fff;color:#304852;border:1px solid #91a6b0}
.tv2-shell .tv2-external-certificates button:disabled{background:#e7eef2;color:#627780;cursor:not-allowed}
.tv2-shell .tv2-external-certificates details>div{margin:10px 0}.tv2-shell .tv2-external-certificates summary{cursor:pointer;color:#304852}
.tv2-shell .tv2-external-certificates .tv2-certificate-upload{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:10px 16px;min-height:40px;box-sizing:border-box;border:1px solid #512338;border-radius:7px;background:#512338;color:#fff;font-size:13px;font-weight:600;line-height:18px;white-space:nowrap;cursor:pointer;box-shadow:0 2px 4px #51233818;transition:background .15s,box-shadow .15s}
.tv2-shell .tv2-external-certificates .tv2-certificate-upload:hover{background:#6b304c;box-shadow:0 3px 7px #51233825}
.tv2-shell .tv2-external-certificates .tv2-certificate-upload:focus-within{outline:3px solid #b99445;outline-offset:3px}
.tv2-shell .tv2-external-certificates .tv2-certificate-upload.is-disabled{background:#d7dfe3;border-color:#c4cfd5;color:#687a85;box-shadow:none;cursor:not-allowed}
.tv2-shell .tv2-external-certificates .tv2-certificate-upload input[type=file]{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:inherit}
.tv2-shell .tv2-external-certificates svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.tv2-shell .tv2-certificate-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tv2-shell .tv2-external-certificates button.tv2-certificate-delete{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#a23b4b;background:#fff5f6;border-color:#e1b9c0;border-radius:6px}
.tv2-shell .tv2-external-certificates button.tv2-certificate-delete:hover:not(:disabled){background:#fce6e9;border-color:#c77d8b}
.tv2-shell .tv2-external-certificates .tv2-certificate-row-error{max-width:290px;margin-top:8px;color:#a23b4b;white-space:normal;overflow-wrap:anywhere}

/* Completion starts with classes; participants and evidence open on demand. */
.tv2-completions .tv2-completion-layout{display:block;min-width:0}
.tv2-completions .tv2-completion-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px 16px;background:#f5f8fa;border:1px solid #aebfc7;margin-bottom:16px}
.tv2-completions .tv2-completion-filters>div{flex:1 1 240px;max-width:600px;min-width:0}
.tv2-completions .tv2-completion-filters label{display:block;font-size:12px;margin:0 0 5px}
.tv2-completions .tv2-completion-filters input,.tv2-completions .tv2-completion-filters select{width:100%;padding:8px 10px;margin:0;box-sizing:border-box}
.tv2-completions .tv2-completion-filters button{min-height:42px;padding:8px 18px;border:1px solid #91a6b0;background:white;color:#304852}
.tv2-completions .tv2-completion-directory{min-width:940px}
.tv2-completions .tv2-completion-directory td{padding:14px 16px}
.tv2-completions .tv2-completion-directory td:last-child{width:1%;white-space:nowrap}
.tv2-completions .tv2-completion-heading{flex-wrap:wrap}
.tv2-completions .tv2-completion-heading>div{flex:1;min-width:200px}
.tv2-completions .tv2-completion-people{min-width:760px;font-size:13px}
.tv2-completions .tv2-completion-people td:first-child{width:28%}
.tv2-completions .tv2-completion-people td:nth-child(2){max-width:400px}
.tv2-completions .tv2-completion-history{margin-top:10px}
.tv2-completions .tv2-completion-history summary{cursor:pointer;color:#405761;font-size:12px}
.tv2-completions .tv2-completion-history button{display:block;margin-top:8px;padding:7px 10px;border:1px solid #a7bbc4;background:#f4f7f9;color:#304852;font-size:12px}
@media(max-width:650px){.tv2-completions .tv2-completion-filters>div{flex-basis:100%;max-width:none}.tv2-completions .tv2-completion-directory td{padding:12px}}

/* Catalog directories follow the completion class directory. */
.tv2-catalog .tv2-browse-layout{display:block;min-width:0}
.tv2-catalog .tv2-browse-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:14px 16px;background:#f5f8fa;border:1px solid #aebfc7;margin-bottom:16px}
.tv2-catalog .tv2-browse-filters>div{flex:1 1 240px;max-width:600px;min-width:0}
.tv2-catalog .tv2-browse-filters label{display:block;font-size:12px;margin:0 0 5px}
.tv2-catalog .tv2-browse-filters input,.tv2-catalog .tv2-browse-filters select{width:100%;padding:8px 10px;margin:0;box-sizing:border-box}
.tv2-catalog .tv2-browse-filters button,.tv2-catalog .tv2-browse-pagination button{min-height:42px;padding:8px 18px;border:1px solid #91a6b0;background:white;color:#304852}
.tv2-catalog .tv2-library-table{min-width:760px}
.tv2-catalog .tv2-library-table td{padding:14px 16px}
.tv2-catalog .tv2-library-table td:first-child{width:42%;max-width:480px}
.tv2-catalog .tv2-library-table td:last-child{width:1%;white-space:nowrap}
.tv2-catalog .tv2-browse-heading{margin-bottom:16px;flex-wrap:wrap}
.tv2-catalog .tv2-browse-heading>div{flex:1;min-width:200px}
.tv2-catalog .tv2-browse-heading h2{margin:0 0 5px}
.tv2-catalog .tv2-browse-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tv2-catalog .tv2-browse-pagination>span{margin-right:auto;color:#405761;font-size:13px}
@media(max-width:650px){.tv2-catalog .tv2-browse-filters>div{flex-basis:100%;max-width:none}.tv2-catalog .tv2-library-table td{padding:12px}}

/* Single-page subject and Program editors, with an always-visible version selector. */
.tv2-catalog .tv2-version-picker-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.tv2-catalog .tv2-version-select{flex:1 1 340px;max-width:560px;min-width:0}
.tv2-catalog .tv2-version-select label{margin:0 0 6px;font-weight:600}
.tv2-catalog .tv2-version-switch{display:flex;align-items:stretch;gap:6px}
.tv2-catalog .tv2-version-switch select{flex:1;min-width:0;margin:0;padding:9px 12px;font-weight:600}
.tv2-catalog .tv2-version-switch button{flex:0 0 40px;font-size:24px;line-height:1;background:#edf3f6;border-color:#a7bbc4;color:#304852;padding:4px}
.tv2-catalog .tv2-version-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:1;min-width:170px}
.tv2-catalog .tv2-version-summary strong{font-size:15px;color:#273f49}
.tv2-catalog .tv2-version-summary small{display:block;flex-basis:100%;font-size:12px;color:#49616c}
.tv2-catalog .tv2-new-version-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid #b5c3c9}
.tv2-catalog .tv2-new-version-form>div{flex:1 1 260px;max-width:420px}
.tv2-catalog .tv2-new-version-form label{margin:0 0 6px}
.tv2-catalog .tv2-new-version-form select{margin:0;padding:9px 12px}
.tv2-catalog .tv2-new-version-form button{min-height:42px;padding:9px 18px}
.tv2-catalog .tv2-new-version-form p{flex-basis:100%;margin:0}
.tv2-catalog .tv2-version-note{padding:10px 14px;background:#edf6f0;border:1px solid #9bbda9;color:#245840;font-size:13px;margin:0 0 16px}
.tv2-catalog .tv2-advanced-window{margin-top:16px;padding-top:14px;border-top:1px solid #c7d4da}
.tv2-catalog .tv2-advanced-window summary{cursor:pointer;color:#405761;font-size:13px}
.tv2-catalog .tv2-saved-value{padding:10px 0 14px;color:#273f49;font-size:19px;font-weight:600;min-height:42px;box-sizing:border-box}
@media(max-width:650px){.tv2-catalog .tv2-version-select{flex-basis:100%;max-width:none}.tv2-catalog .tv2-version-picker-row{gap:14px}.tv2-catalog .tv2-version-summary{min-width:150px}}
.tv2-track-picker{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.tv2-track-picker button.active{background:#304b57;color:white;border-color:#304b57}.tv2-version-history,.tv2-catalog-maintenance{margin:16px 0}.tv2-version-history summary,.tv2-catalog-maintenance summary{cursor:pointer;color:#476572}.tv2-dialog-backdrop{position:fixed;inset:0;background:#0006;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.tv2-dialog{background:#fff;color:#304b57;border-radius:8px;padding:24px;max-width:600px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 12px 40px #0004}.tv2-dialog label{display:block;margin:12px 0}.tv2-dialog input,.tv2-dialog select{display:block;width:100%;border:1px solid #b8cbd4;border-radius:4px;padding:9px;box-sizing:border-box}.tv2-dialog button,.tv2-catalog-maintenance button{padding:8px 14px;margin:4px;border:1px solid #b8cbd4;border-radius:4px;background:white}.tv2-dialog button.tv2-danger{background:#ae3434;color:white}.tv2-dialog button:disabled{opacity:.5}

.tv2-directory-progress,.tv2-infinite-sentinel{padding:12px;color:#71838c;font-size:13px;text-align:center}

.tv2-footer-end{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
