/* TOÁN TIN 3.2 Build 20 — consistent form controls */

.form-select {
    padding-right:2.65rem!important;
    background-position:right .85rem center!important;
}

.form-control,.form-select,.btn {
    min-height:40px;
}

@media(max-width:767.98px) {
    .tt-filterbar>* {
        flex:1 1 160px;
    }
    .tt-filterbar .btn {
        flex:0 0 auto;
    }
}

.tt-owner {
    font-size:.82rem;
    color:var(--bs-secondary-color);
}

/* Build 21 */

.tt-filterbar .form-select {
    min-width:150px;
}

.tt-filterbar select[name=teacher_id] {
    min-width:230px;
}

/* BUILD29 FIX29.39 — canonical compact management-table action system.
   Root cause fixed here: the global .btn min-height, action-cell auto-shrink,
   flex wrapping and inherited table padding/cascade must be handled together. */

.tt-management-table {
    width:100%;
    table-layout:auto;
}

.tt-col-check {
    width:36px;
    min-width:36px;
    text-align:center;
}

.tt-col-stt {
    width:48px;
    white-space:nowrap;
}

.tt-col-compact {
    width:1%;
    white-space:nowrap;
}

.tt-col-content {
    width:auto;
}

.tt-col-actions {
    width:1%;
    min-width:172px;
    white-space:nowrap;
    text-align:right;
}

.tt-col-actions-wide {
    min-width:278px;
}

.tt-col-actions-trash {
    min-width:224px;
}

.tt-management-table>thead>tr>th,
.tt-management-table>tbody>tr>td {
    padding-left:.48rem;
    padding-right:.48rem;
}

.tt-row-actions {
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:4px;
    flex-wrap:nowrap;
    white-space:nowrap;
    width:max-content;
    min-width:max-content;
    margin-left:auto;
}

.tt-row-actions form {
    display:inline-flex;
    margin:0;
    flex:0 0 auto;
}

.tt-action.btn,.btn.tt-action {
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    gap:3px;
    min-width:0!important;
    min-height:29px!important;
    height:29px;
    padding:3px 8px!important;
    border-radius:5px!important;
    font-size:12.5px!important;
    font-weight:600!important;
    line-height:1!important;
    white-space:nowrap!important;
}

.tt-action i {
    font-size:13.5px!important;
    line-height:1;
}

.tt-action:focus-visible {
    outline:3px solid rgba(13,110,253,.22);
    outline-offset:2px;
}

.tt-action[disabled],.tt-action.disabled {
    opacity:.58;
    cursor:not-allowed;
}

.tt-trash-entry.btn,.btn.tt-trash-entry {
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:30px!important;
    padding:4px 9px!important;
    font-size:12.5px!important;
    line-height:1!important;
    border-radius:5px!important;
    white-space:nowrap;
}

.tt-trash-toolbar {
    display:flex;
    align-items:center;
    gap:5px;
    flex-wrap:nowrap;
    min-height:42px;
    padding:5px 7px;
    border:1px solid var(--bs-border-color);
    border-radius:7px;
    background:var(--bs-tertiary-bg);
    white-space:nowrap;
}

.tt-trash-toolbar .tt-action.btn,.tt-trash-toolbar .btn.tt-action {
    min-height:31px!important;
    height:31px;
    padding:4px 8px!important;
    font-size:12.5px!important;
}

.tt-trash-toolbar .ms-auto {
    margin-left:auto!important;
}

@media(max-width:1399.98px) {
    .tt-col-actions {
        min-width:160px;
    }
    .tt-col-actions-wide {
        min-width:252px;
    }
    .tt-col-actions-trash {
        min-width:210px;
    }
    .tt-management-table>thead>tr>th,.tt-management-table>tbody>tr>td {
        padding-left:.4rem;
        padding-right:.4rem;
    }
    .tt-row-actions {
        gap:3px;
    }
    .tt-action.btn,.btn.tt-action {
        padding-left:7px!important;
        padding-right:7px!important;
        font-size:12px!important;
    }
}

@media(max-width:991.98px) {
    .tt-col-actions,.tt-col-actions-wide,.tt-col-actions-trash {
        min-width:150px;
    }
    .tt-row-actions {
        flex-wrap:wrap;
        width:auto;
        min-width:0;
        max-width:220px;
        row-gap:3px;
    }
    .tt-trash-toolbar {
        flex-wrap:wrap;
        white-space:normal;
    }
    .tt-trash-toolbar .ms-auto {
        margin-left:0!important;
    }
}

@media(max-width:767.98px) {
    .tt-row-actions {
        justify-content:flex-start;
        max-width:none;
    }
    .tt-action.btn,.btn.tt-action {
        min-height:38px!important;
        height:auto;
        padding:7px 10px!important;
        font-size:13px!important;
    }
    .tt-trash-entry.btn,.btn.tt-trash-entry {
        min-height:40px!important;
        padding:7px 10px!important;
        font-size:13px!important;
    }
    .tt-trash-toolbar {
        align-items:stretch;
    }
    .tt-trash-toolbar .tt-action.btn,.tt-trash-toolbar .btn.tt-action {
        min-height:40px!important;
        height:auto;
    }
}

/* Code-quality candidate: baseline accessibility/readability polish for management surfaces.
   Chỉ tác động presentation; không đổi selector contract, DOM hook hay hành vi submit/AJAX. */
:where(.form-control,.form-select,.btn,.page-link,.dropdown-item):focus-visible {
    outline:3px solid rgba(13,110,253,.24);
    outline-offset:2px;
}

.table-responsive {
    scrollbar-gutter:stable;
}

.table > :not(caption) > * > * {
    vertical-align:middle;
}

.btn:disabled,.btn.disabled,[aria-disabled="true"] {
    cursor:not-allowed;
}

@media(max-width:767.98px) {
    .tt-filterbar {
        align-items:stretch!important;
    }
    .tt-filterbar .form-control,.tt-filterbar .form-select,.tt-filterbar .btn {
        min-height:44px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .tt-action,.tt-trash-entry {
        transition:none!important;
    }
}
