body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: #f8fafc; color: #1e293b; }
.sidebar-link.active { background-color: #2563eb; color: white; }
.card { background: white; border-radius: 1.5rem; border: 1px solid #e2e8f0; transition: all 0.3s; }
.custom-scrollbar::-webkit-scrollbar { width: 5px; height: 5px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
.editable-year { border-bottom: 1px dashed #94a3b8; cursor: text; padding-bottom: 2px; transition: all 0.2s; }
.editable-year:hover { background-color: #e0f2fe; }
.editable-year:focus { outline: none; border-bottom: 2px solid #3b82f6; background-color: #e0f2fe; }
input[readonly], select[disabled] { background-color: transparent; border: 1px solid transparent; color: #334155; font-weight: 700; cursor: default; text-align: center; pointer-events: none; appearance: none; -webkit-appearance: none; }
input:not([readonly]).grade-input, select:not([disabled]).acc-select { background-color: #ffffff; border: 1px solid #94a3b8; border-radius: 6px; box-shadow: inset 0 1px 2px rgba(0,0,0,0.05); text-align: center; padding: 4px; color: #0f172a; transition: all 0.2s; cursor: pointer;}
input:not([readonly]).grade-input:focus, select:not([disabled]).acc-select:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px #bfdbfe; }
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }
.rotated-th { writing-mode: vertical-rl; transform: rotate(180deg); text-align: left; padding: 10px 5px !important; max-height: 140px; font-size: 10px; }
@media print {
  aside, header, nav, .no-print, .no-print * { display: none !important; }
  body, main, #main-shell { margin: 0 !important; padding: 0 !important; background-color: white !important; overflow: visible !important; height: auto !important; width: 100% !important; display: block !important; }
  .card, section { box-shadow: none !important; border: none !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
  table { width: 100% !important; border-collapse: collapse !important; page-break-inside: auto; }
  tr { page-break-inside: avoid; page-break-after: auto; }
  th, td { border: 1px solid #000 !important; color: #000 !important; background-color: #fff !important; }
  input, select { border: none !important; background: transparent !important; color: #000 !important; -webkit-appearance: none; appearance: none; text-align: center; }
  .custom-scrollbar { overflow: visible !important; }
}
