/* ==========================================================================
   New UI - Assessment Catalog (_assess/assessments/catalog)
   The page shell, rail and results list all now speak the shared search-
   page language in public/new-ui/new-ui-assess-search-99cb99c53f.css (.asr-page,
   .asr-top, .asr-layout > .asr-rail + .asr-results, .asr-list/.asr-row,
   etc.) - see that file's header comment. catalog.nui.html / catalog.
   component.nui.html / assmnt-ctlg-filters.nui.html / assmnt-ctlg-view.
   nui.html use its classes directly.

   What's left here is only what that shared sheet doesn't cover for this
   page specifically:
     - rail form controls the shared sheet has no equivalent for (plain
       text/date inputs, radios, the "Shared by"/"Active Window Only"
       inline blocks, a filter section's "Clear" footer, an option list's
       max-height cap)
     - testManager-mode row actions (print/bubble sheet/proctor/rubric
       scoring/school targeting/score entry) - assmnt-ctlg-view.nui.html
       still renders these (test-manager.html, outside this task's file
       list, hosts the component in that mode) via small icon buttons the
       new .asr-actions/.asr-more pattern doesn't have an equivalent for.

   See the templateUrl pickers in catalog.config.js / catalog.component.js /
   assmnt-ctlg-filters.component.js / assmnt-ctlg-view.component.js. Classic
   keeps rendering catalog.html / catalog.component.html /
   assmnt-ctlg-filters.html / assmnt-ctlg-view.html untouched.

   Every selector is scoped under body.nui-on, this page's own New UI gate.
   ========================================================================== */

/* ========================================================================
   1. RAIL form controls (assmnt-ctlg-filters.nui.html) - the shared sheet's
   .asr-rail/.asr-section/.asr-option cover the rest; these are plain form
   bits it has no equivalent for.
   ======================================================================== */
.nui-on .actlg-field {
    margin-bottom: 8px;
}
.nui-on .actlg-label {
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--dc-tracking-caps, .08em);
    color: var(--dc-muted, #7B8E92);
    margin-bottom: 4px;
}
.nui-on .actlg-input {
    width: 100%;
    height: 30px;
    padding: 0 10px;
    border: 1px solid var(--dc-border-control, #D5DCE3);
    border-radius: var(--dc-radius-control, 8px);
    font-size: 12px;
    font-family: var(--dc-font-display, "Montserrat", sans-serif);
    color: var(--dc-ink, #1B2733);
    background: var(--dc-white, #fff);
    box-sizing: border-box;
}
.nui-on .actlg-input:focus {
    outline: none;
    border-color: var(--dc-blue, #0074C5);
}
.nui-on .actlg-input-sm {
    height: 26px;
    font-size: 11.5px;
}
.nui-on .actlg-radio {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 400;
    color: var(--dc-body, #3C4B59);
    padding: 3px 0;
    margin: 0;
    cursor: pointer;
}
.nui-on .actlg-radio-group {
    margin-bottom: 8px;
}
/* caps a long .asr-options list's height - the shared sheet leaves this
   unbounded */
.nui-on .actlg-option-list {
    max-height: 220px;
    overflow-y: auto;
}
.nui-on .actlg-rail-inline {
    padding: 10px 14px;
    border-bottom: 1px solid var(--dc-border, #E6EAEE);
}
.nui-on .actlg-rail-section-foot {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
    padding: 0 4px 8px;
}

/* ========================================================================
   2. testManager-mode row actions (assmnt-ctlg-view.nui.html's
   #asrActions.html ng-template, ctrl.options.mode == 'testManager' branch
   only - catalog/add modes use the shared sheet's .asr-btn/.asr-more
   directly). Small icon buttons; the shared sheet has no equivalent.
   ======================================================================== */
.nui-on .actlg-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: var(--dc-radius-control, 8px);
    background: none;
    color: var(--dc-body, #3C4B59);
    font-size: 11.5px;
    cursor: pointer;
}
.nui-on .actlg-icon-btn:hover {
    background: var(--dc-surface-2, #F7F9FB);
    color: var(--dc-blue, #0074C5);
}
.nui-on .actlg-icon-btn-primary:hover {
    color: var(--dc-blue, #0074C5);
}
.nui-on .actlg-icon-btn-danger:hover {
    color: var(--dc-danger, #D23F31);
}
.nui-on .actlg-icon-btn[disabled],
.nui-on .actlg-icon-btn-disabled {
    opacity: .4;
    cursor: not-allowed;
}
.nui-on .actlg-icon-btn[disabled]:hover,
.nui-on .actlg-icon-btn-disabled:hover {
    background: none;
    color: var(--dc-body, #3C4B59);
}
.nui-on .actlg-school-targeting {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--dc-body, #3C4B59);
}
.nui-on .actlg-btn-sm {
    height: 24px;
    padding: 0 8px;
    border: 0;
    border-radius: var(--dc-radius-control, 8px);
    background: var(--dc-blue, #0074C5);
    color: var(--dc-white, #fff);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

/* assmnt-ctlg-view is replace:true, so its root div sits between
   .asr-results (flex column) and the .asr-list scroller; it has to pass the
   flex height through or the windowed list measures 0 rows. */
.nui-on .asr-results > .asr-view-host {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
