body{background:#f7f8fb}.card{border-radius:14px}.navbar{background:#003f7f!important}.table{background:white}
.nav-wrap{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;align-items:center}
.nav-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}
.table-fixed{table-layout:fixed}
.text-break-file{overflow-wrap:anywhere;word-break:break-word}
.revision-cell{min-width:360px}
.login-logo{width:60px!important;height:60px!important;max-width:60px!important;max-height:60px!important;object-fit:contain;display:inline-block}
.login-card{max-width:420px}
.status-card{border:1px solid #d9dee8;background:#fff;padding:.75rem;min-height:72px}
.border-orange{border-color:#fd7e14!important}
.bg-orange,.text-bg-orange{background-color:#fd7e14!important;color:#111!important}
.status-badge{display:inline-block;border-radius:.45rem;padding:.25rem .5rem;font-size:.78rem;font-weight:700;line-height:1.1}
.status-success{background:#2ee66b;color:#062b13}
.status-upcoming{background:#198754;color:#fff}
.status-warning{background:#ffc107;color:#111}
.status-orange{background:#fd7e14;color:#111}
.status-danger{background:#dc3545;color:#fff}
.status-secondary{background:#6c757d;color:#fff}
.legend{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.875rem;color:#495057}
.legend span{display:inline-flex;gap:.35rem;align-items:center}
.legend-dot{width:.75rem;height:.75rem;border-radius:50%;display:inline-block}
.row-status-oportuna{border-left:4px solid #2ee66b}
.row-status-proximo_iniciar{border-left:4px solid #198754}
.row-status-cumplio{border-left:4px solid #ffc107}
.row-status-extemporanea{border-left:4px solid #fd7e14}
.row-status-sin_subir{border-left:4px solid #dc3545}
.admin-progress{min-width:110px;height:22px}
.admin-tabs .nav-link{border:1px solid #d9dee8;background:#fff;color:#123}
.admin-tabs .nav-link.active{background:#003f7f;border-color:#003f7f;color:#fff}
.admin-panel-section{border:1px solid #d9dee8;background:#fff;padding:1rem}
.assignment-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem;border:1px solid #dee2e6;border-radius:.375rem;background:#fff;padding:.65rem;min-height:48px}
.assignment-check{display:flex;align-items:center;gap:.55rem;border:1px solid #eef1f5;border-radius:.375rem;padding:.5rem .65rem;margin:0;background:#fdfdfd;cursor:pointer}
.assignment-check:hover{background:#f4f8ff;border-color:#cfe2ff}
.assignment-check input{flex:0 0 auto}
@media (max-width: 768px){
    .container{max-width:100%;padding-left:.75rem;padding-right:.75rem}
    main.container{padding-top:1rem!important}
    .navbar-brand{font-size:1rem;white-space:normal;line-height:1.2}
    .nav-actions{width:100%;justify-content:flex-start}
    .nav-actions .btn{flex:1 1 auto}
    h3{font-size:1.35rem}
    .status-card{min-height:60px;padding:.6rem}
    .responsive-table{overflow:visible}
    .responsive-table table,.responsive-table thead,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}
    .responsive-table table{border:0;background:transparent}
    .responsive-table thead{display:none}
    .responsive-table tr{background:#fff;border:1px solid #d9dee8;margin-bottom:.75rem;padding:.25rem .75rem}
    .responsive-table td{border:0!important;border-bottom:1px solid #eef1f5!important;padding:.55rem 0!important}
    .responsive-table td:last-child{border-bottom:0!important}
    .responsive-table td::before{content:attr(data-label);display:block;font-size:.75rem;font-weight:700;color:#5d6675;margin-bottom:.15rem}
    .revision-cell{min-width:0}
    .table-fixed{table-layout:auto}
    .btn{white-space:normal}
}
