.container{padding-top:.5rem}.search-layout{grid-template-columns:340px 1fr;gap:1rem;min-height:calc(100vh - 100px);margin-top:1rem;display:grid}.results-panel{flex-direction:column;gap:.5rem;display:flex}.result-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.65rem .85rem;transition:background .12s,border-color .12s}.result-item:hover{background:var(--accent-bg);border-color:var(--accent)}.result-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.result-item.active{background:var(--accent-bg);border-color:var(--accent)}.result-item.pulse{animation:.55s result-pulse}@keyframes result-pulse{0%{transform:scale(1)}35%{border-color:var(--accent);transform:scale(1.015)}to{transform:scale(1)}}.result-item .name{font-size:.92rem;font-weight:600}.result-item .meta{color:var(--muted);margin-top:.15rem;font-size:.78rem}.detail-panel{flex-direction:column;gap:1rem;display:flex}.detail-empty{height:100%;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem;font-size:.9rem;display:flex}.detail-empty svg{opacity:.25}.student-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.student-header h2{margin:0;font-size:1.3rem}.student-header .lrn{color:var(--muted);margin-top:.2rem;font-size:.82rem}.student-header .actions{flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;display:flex}.student-header-tools{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.scan-indicator{align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;display:inline-flex}.scan-indicator.has-scan{color:var(--success)}.scan-indicator.no-scan{color:var(--muted);opacity:.6}.timeline{flex-direction:column;gap:.75rem;display:flex}.timeline-year{border:1px solid var(--border);border-radius:var(--radius);position:relative;overflow:hidden}.timeline-year-header{background:var(--bg);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.65rem 1rem;font-size:.9rem;font-weight:600;display:flex}.timeline-action-btn,.record-tabs .timeline-action-btn{opacity:0;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .6rem;transition:opacity .15s,background .15s,border-color .15s,color .15s}.timeline-action-btn:hover{background:var(--border)}.timeline-action-btn.del-btn:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.timeline-year-body:hover .timeline-action-btn{opacity:1}.timeline-year-header:hover{background:var(--accent-bg)}.timeline-year-header .right{align-items:center;gap:.65rem;display:flex}.chevron{color:var(--muted);margin-left:.5rem;font-size:.85rem;transition:transform .2s;display:inline-block;transform:rotate(0)}.timeline-year-header.open .chevron{transform:rotate(90deg)}.timeline-year-body{background:var(--surface);padding:1rem;display:none}.grades-display{border-collapse:collapse;width:100%;font-size:.83rem}.grades-display th{color:var(--muted);text-align:center;border-bottom:1px solid var(--border);padding:.3rem .4rem;font-size:.72rem;font-weight:600}.grades-display th.subj{text-align:left}.grades-display td{text-align:center;border-bottom:1px solid var(--border);padding:.3rem .4rem;font-size:.83rem}.grades-display td.subj{text-align:left;color:var(--text)}.grades-display tr:last-child td{border-bottom:none}.grades-display .avg-row td{background:var(--bg);font-weight:700}.grade-pill{border-radius:99px;padding:.1rem .45rem;font-size:.75rem;font-weight:600;display:inline-block}.grade-pass{color:var(--success);background:#ecfdf5}.grade-fail{color:var(--danger);background:#fef2f2}.grade-honors{color:#2563eb;background:#eff6ff}[data-theme=dark] .grade-pass{background:#1a2e22}[data-theme=dark] .grade-fail{background:#2e1a1a}.record-tabs{gap:.25rem;margin-bottom:.75rem;display:flex}.record-tabs button{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:99px;padding:.3rem .75rem;font-size:.82rem}.record-tabs button.active{background:var(--text);border-color:var(--text);color:var(--bg)}.attendance-grid{grid-template-columns:repeat(5,1fr);gap:.4rem;margin-top:.5rem;display:grid}.att-cell{text-align:center;border:1px solid var(--border);border-radius:var(--radius);padding:.35rem;font-size:.8rem}.att-cell .month{color:var(--muted);font-size:.7rem}.att-cell .days{font-weight:600}.behavior-table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.83rem}.behavior-table th{color:var(--muted);text-align:center;border-bottom:1px solid var(--border);padding:.3rem;font-size:.72rem;font-weight:600}.behavior-table th.value-col{text-align:left}.behavior-table td{text-align:center;border-bottom:1px solid var(--border);padding:.3rem}.behavior-table td.value-col{text-align:left}.behavior-table tr:last-child td{border-bottom:none}.scan-inline{border:1px solid var(--border);border-radius:var(--radius);max-height:480px;margin-top:.75rem;overflow:hidden}.scan-inline img{object-fit:contain;width:100%}.scan-inline iframe{border:none;width:100%;height:480px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;visibility:hidden;opacity:0;background:#0006;justify-content:center;align-items:center;transition:opacity .25s ease-in-out,visibility .25s ease-in-out;display:flex;position:fixed;inset:0}.modal-overlay.active{visibility:visible;opacity:1}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-user-select:none;user-select:none;width:550px;max-width:90%;padding:1.5rem;box-shadow:0 10px 25px #0000001a}.modal h3{margin-top:0;margin-bottom:1rem}.modal .field{margin-bottom:.8rem}.modal .field label{color:var(--muted);margin-bottom:.2rem;font-size:.8rem;font-weight:600;display:block}.modal .field input,.modal .field select{width:100%;padding:.4rem .6rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.record-choice-list{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.record-choice{text-align:left;border-radius:2px;justify-content:space-between;width:100%;padding:.7rem .8rem}.record-choice span{color:var(--muted);font-size:.78rem;font-weight:500}.empty.loading-empty{justify-content:center;align-items:center;gap:.65rem;display:flex}.toast-stack{z-index:1200;pointer-events:none;flex-direction:column;align-items:flex-start;gap:.5rem;display:flex;position:fixed;top:64px;left:1.5rem}.toast{border:1px solid #9bd3ad;border-left:4px solid var(--success);border-radius:var(--radius);color:#164b2b;opacity:0;-webkit-user-select:none;user-select:none;background:#effaf3;min-width:260px;max-width:360px;padding:.75rem .9rem;font-size:.86rem;font-weight:600;animation:.18s forwards toast-in,.18s 3.1s forwards toast-out;transform:translateY(-6px);box-shadow:0 10px 24px #0000001f}.toast-error{border-color:#f0aaa3;border-left-color:var(--danger);color:#751f18;background:#fff1f0}[data-theme=dark] .toast{border-color:#2d7a49;border-left-color:var(--success);color:#bff0cd;background:#102a1b;box-shadow:0 10px 24px #00000059}[data-theme=dark] .toast-error{border-color:#79352e;border-left-color:var(--danger);color:#ffc5c0;background:#351815}@keyframes toast-in{to{opacity:1;transform:translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translateY(-6px)}}@media print{nav,.search-bar,.results-panel,.student-header .actions,.modal-overlay,.timeline-action-btn,body.printing-record .timeline-year:not(.print-target),body.printing-record .record-tabs{display:none!important}html,body,main,.container,.search-layout,.detail-panel{height:auto!important;overflow:visible!important}.search-layout{min-height:0;display:block}.student-header{align-items:flex-start}body.printing-record .timeline-year.print-target,body.printing-record .timeline-year.print-target .timeline-year-body{display:block!important}}@media (width<=768px){.search-bar{grid-template-columns:1fr;gap:.5rem;display:grid}.search-bar select{width:100%!important}.search-layout{grid-template-columns:1fr;min-height:0}.detail-panel,.results-panel{display:block}#results-list{gap:.5rem;display:grid}.student-header{flex-direction:column;align-items:flex-start}.student-header .actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.timeline-year-body{overflow-x:auto}.attendance-grid{grid-template-columns:repeat(2,1fr)}}
