/* Step 104 / Step 7AM: protected-screen UI polish foundation */
:root {
    --ui-polish-gap: 10px;
    --ui-polish-radius: 16px;
    --ui-polish-button-min: 42px;
    --ui-polish-touch-min: 44px;
    --ui-polish-card-min: 132px;
}

.role-admin .app-screen,
.role-sub-admin .app-screen,
.role-teacher .app-screen,
.role-student .app-screen,
.role-guardian .app-screen {
    scroll-padding-top: 96px;
}

.ui-dashboard-page {
    display: grid;
    gap: 16px;
}

.ui-dashboard-page > .page-head {
    margin-bottom: 0;
}

.ui-panel-card,
.ui-command-card,
.admin-polish-compact-card,
.teacher-preview-card {
    border-radius: 22px;
}

.ui-action-strip,
.phase58-action-bar.ui-action-strip,
.teacher-action-strip.ui-action-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
    gap: var(--ui-polish-gap);
    align-items: stretch;
}

.ui-action-strip > a,
.ui-action-strip > button,
.ui-action-strip > form,
.ui-action-cluster > a,
.ui-action-cluster > button,
.ui-action-cluster > form,
.ui-action-cluster > .chip {
    min-width: 0;
}

.ui-action-strip > a,
.teacher-action-strip.ui-action-strip > a,
.phase58-action-bar.ui-action-strip > a,
.ui-action-button,
.ui-action-cluster .btn,
.ui-action-cluster button,
.ui-action-cluster .chip {
    min-height: var(--ui-polish-button-min);
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    line-height: 1.18;
    white-space: normal;
    overflow-wrap: anywhere;
    border-radius: var(--ui-polish-radius);
}

.ui-action-cluster {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
    gap: var(--ui-polish-gap);
    align-items: stretch;
    width: 100%;
}

.ui-action-cluster form,
.ui-action-cluster .inline-form {
    width: 100%;
    margin: 0;
}

.ui-action-cluster-many {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.ui-module-grid.workflow-card-grid,
.workflow-card-grid.ui-module-grid,
.ui-preview-grid,
.ui-kpi-grid {
    align-items: stretch;
}

.ui-module-grid .workflow-card,
.workflow-card-grid.ui-module-grid .workflow-card,
.teacher-priority-card,
.admin-control-panel .workflow-card {
    min-height: var(--ui-polish-card-min);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    border-radius: 20px;
}

.ui-module-grid .workflow-card strong,
.admin-control-panel .workflow-card strong,
.teacher-priority-card strong {
    line-height: 1.22;
}

.ui-module-grid .workflow-card span,
.admin-control-panel .workflow-card span,
.teacher-priority-card span {
    line-height: 1.38;
    color: var(--muted);
}

.ui-kpi-grid .metric-card,
.teacher-summary-grid.ui-kpi-grid .metric-card,
.admin-polish-kpis.ui-kpi-grid .metric-card {
    min-height: 118px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
}

.table-head {
    gap: 14px;
}

.table-head > .ui-action-cluster,
.table-head > .cta-row,
.table-head > .compact-actions {
    max-width: 720px;
    margin-left: auto;
}

.ui-table-scroll,
.table-wrap.ui-table-scroll,
.premium-table-wrap.ui-table-scroll {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

.ui-table-scroll[data-ui-polish-scroll="1"]::before {
    content: "Swipe sideways if table is wider";
    display: none;
    padding: 8px 10px;
    color: var(--muted);
    font-size: .82rem;
    border-bottom: 1px solid var(--border);
}

.ui-table-scroll table th,
.ui-table-scroll table td,
.premium-table th,
.premium-table td,
.admin-polish-table th,
.admin-polish-table td {
    vertical-align: middle;
}

.ui-table-scroll table th:last-child,
.ui-table-scroll table td:last-child,
.admin-polish-table th:last-child,
.admin-polish-table td:last-child,
.premium-table th:last-child,
.premium-table td:last-child {
    min-width: 118px;
}

.ui-sticky-actions,
.admin-question-drawer-actions,
.drawer-actions,
.modal-actions.sticky,
.form-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 8;
    padding-top: 10px;
    padding-bottom: 10px;
    background: linear-gradient(180deg, rgba(7,18,47,0), var(--surface) 26%);
    backdrop-filter: blur(10px);
}

.ui-form-grid-normalized .field > label,
.form-grid .field > label {
    min-height: 20px;
}

.role-admin input,
.role-admin select,
.role-admin textarea,
.role-teacher input,
.role-teacher select,
.role-teacher textarea,
.role-sub-admin input,
.role-sub-admin select,
.role-sub-admin textarea {
    max-width: 100%;
}

.admin-polish-approve-form {
    display: grid;
    gap: 8px;
    min-width: min(280px, 100%);
}

.admin-polish-approve-form input,
.admin-polish-approve-form button {
    width: 100%;
}

.page-admin-content .admin-question-filter-grid,
.page-admin-question-bank .admin-question-filter-grid,
.page-admin-question-generator .admin-question-filter-grid {
    align-items: end;
}

.page-admin-content .admin-question-drawer-summary,
.page-admin-content .admin-question-row-actions,
.page-admin-question-bank .admin-question-drawer-summary,
.page-admin-question-generator .admin-question-drawer-summary {
    gap: var(--ui-polish-gap);
}

.page-admin-content .admin-question-drawer-actions .btn,
.page-admin-question-bank .admin-question-drawer-actions .btn,
.page-admin-question-generator .admin-question-drawer-actions .btn {
    min-height: var(--ui-polish-touch-min);
}

.ui-empty-state,
.empty-state,
.muted-line:only-child {
    border-radius: 18px;
}

@media (min-width: 900px) {
    .ui-command-card {
        display: grid;
        grid-template-columns: minmax(260px, .8fr) minmax(420px, 1.2fr);
        align-items: center;
        gap: 18px;
    }

    .ui-command-card .command-actions {
        margin-left: 0;
    }
}

@media (max-width: 900px) {
    .table-head,
    .card-title-line {
        align-items: stretch;
    }

    .table-head > .ui-action-cluster,
    .table-head > .cta-row,
    .table-head > .compact-actions {
        max-width: none;
        margin-left: 0;
    }

    .ui-action-strip,
    .phase58-action-bar.ui-action-strip,
    .teacher-action-strip.ui-action-strip,
    .ui-action-cluster {
        grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
    }

    .ui-table-scroll[data-ui-polish-scroll="1"]::before {
        display: block;
    }
}

@media (max-width: 640px) {
    :root {
        --ui-polish-gap: 8px;
        --ui-polish-button-min: 44px;
        --ui-polish-card-min: 110px;
    }

    .ui-action-strip,
    .phase58-action-bar.ui-action-strip,
    .teacher-action-strip.ui-action-strip,
    .ui-action-cluster,
    .ui-action-cluster-many {
        grid-template-columns: 1fr;
    }

    .ui-action-strip > a,
    .teacher-action-strip.ui-action-strip > a,
    .phase58-action-bar.ui-action-strip > a,
    .ui-action-button,
    .ui-action-cluster .btn,
    .ui-action-cluster button,
    .ui-action-cluster .chip {
        justify-content: center;
        min-height: var(--ui-polish-touch-min);
    }

    .ui-module-grid .workflow-card,
    .workflow-card-grid.ui-module-grid .workflow-card,
    .teacher-priority-card,
    .admin-control-panel .workflow-card {
        min-height: auto;
    }

    .ui-table-scroll table {
        min-width: 680px;
    }
}
