/* ========================= CONTAINER ========================= */ .mat-container { max-width: 1200px; margin: 30px auto; padding: 25px; background: #ffffff; border-radius: 10px; box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08); } .page-title { text-align: center; margin-bottom: 20px; font-weight: 600; } /* ========================= YEAR CONTROLS ========================= */ .year-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; } .year-controls select { padding: 8px 10px; font-size: 14px; border-radius: 6px; border: 1px solid #ced4da; } .year-controls button { padding: 8px 14px; font-size: 14px; border-radius: 6px; border: none; cursor: pointer; background-color: #0d6efd; color: #ffffff; } .year-controls button:hover { background-color: #0b5ed7; } /* ========================= TABLE WRAPPER ========================= */ .table-wrapper { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; } /* ========================= TABLE ========================= */ #matTable { width: 100%; min-width: 900px; border-collapse: collapse; font-size: 14px; text-align: center; } /* ========================= HEADER ========================= */ #matTable thead th { background: linear-gradient(135deg, #0d6efd, #0a58ca); color: #ffffff; padding: 12px 8px; border: 1px solid #0a58ca; white-space: nowrap; } /* ========================= BODY CELLS ========================= */ #matTable tbody td { padding: 8px; border: 1px solid #dcdcdc; background-color: #ffffff; } #matTable tbody td:first-child { font-weight: 600; background-color: #f5f8ff; } /* ========================= INPUTS ========================= */ #matTable input { width: 100%; padding: 6px; border: 1px solid #cfd8dc; border-radius: 4px; font-size: 13px; text-align: right; box-sizing: border-box; } #matTable input:focus { border-color: #0d6efd; box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.15); outline: none; } /* ========================= BUTTONS ========================= */ #matTable button { background-color: #198754; border: none; color: white; padding: 6px 14px; border-radius: 4px; cursor: pointer; font-size: 13px; } #matTable button:hover { background-color: #157347; } .add-row-btn { background-color: #0d6efd; color: #fff; border: none; padding: 8px 18px; border-radius: 6px; cursor: pointer; } .add-row-btn:hover { background-color: #0b5ed7; } /* ========================= ROW STATES ========================= */ #matTable tbody tr:hover { background-color: #f1f6ff; } .input-error { border-color: #dc3545 !important; background-color: #fff5f5; } .row-saved { background-color: #e9f7ef !important; } /* ========================= ACTION FOOTER ========================= */ .action-footer { margin-top: 15px; } /* ========================= MOBILE ONLY FIXES (DOES NOT AFFECT DESKTOP) ========================= */ @media (max-width: 768px) { .mat-container { margin: 10px; padding: 15px; } /* YEAR CONTROLS STACKED */ .year-controls { flex-direction: column; align-items: stretch; } .year-controls select, .year-controls button { width: 100%; font-size: 14px; } /* TABLE */ #matTable { font-size: 12px; min-width: 800px; } #matTable input { font-size: 12px; } #matTable button { font-size: 12px; padding: 5px 10px; } /* ADD ROW BUTTON FULL WIDTH */ .add-row-btn { width: 50%; } }