/* Unified application shell: original blue/white visuals with the server-backed feature set. */
body{background:var(--bg)}[hidden]{display:none!important}
.login-error,.page-error{color:#b42318;white-space:pre-wrap}.login-error:not(:empty),.page-error:not(:empty){margin-top:14px;padding:11px 13px;background:#fff0f1;border:1px solid #f2c4ca;border-radius:9px;font-size:13px}
.login-card form label{display:block;font-size:13px;color:#69758a;margin:16px 0}.login-card form input{display:block;width:100%;margin-top:8px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;outline:0}
.app[hidden]{display:none!important}aside{position:fixed;inset:0 auto 0 0;z-index:2}.app main{margin-left:242px;width:calc(100% - 242px)}.campus-pill span{color:#19a974;font-weight:700}
#tabs{display:grid;gap:5px;overflow:auto}#tabs button{padding:12px 13px;border-radius:9px;text-align:left;color:#738098;font-size:14px;white-space:nowrap}#tabs button.active,#tabs button:hover{background:var(--soft);color:var(--blue);font-weight:600}#tabs #refresh{margin-top:14px;border-top:1px solid var(--line);border-radius:0;padding-top:18px}
.side-foot{min-width:0}.side-foot #identity{min-width:0;line-height:1.35}.side-foot #identity b{display:block;overflow:hidden;text-overflow:ellipsis}.side-foot #identity small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
header .profile{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 14px}.hero{background:linear-gradient(120deg,#3e59c8,#6e82ec)}.hero-emoji{font-size:42px}
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:16px 0}.panel label{font-size:12px;color:#64748b}.panel label input,.panel label select{display:block;width:100%;margin-top:7px}.panel input,.panel select,.panel textarea{max-width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:#263b50;font:inherit}.panel textarea{width:100%;margin:10px 0}.panel button:not(.primary){color:#61738a;font-size:12px;padding:8px}.panel .primary{color:#fff}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.panel-head .section-toggle{display:flex;align-items:center;gap:9px;padding:0!important;color:var(--ink)!important;font-size:16px!important;font-weight:700}.section-toggle .chevron{font-size:11px;color:#718096;transition:transform .18s}.section-toggle[aria-expanded="true"] .chevron{transform:rotate(90deg)}
.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.stat strong{color:#253d91}.notice{background:#eef2ff!important;color:#5269b1!important;border:1px solid #dde4ff}.muted{font-size:12px;color:#7c8899!important;line-height:1.8}.pill{display:inline-block;background:#edf1ff;color:#5069d5;padding:4px 9px;border-radius:14px;font-size:12px;white-space:nowrap}
.table-scroll{overflow:auto}.table th{white-space:nowrap}.table td{vertical-align:top;line-height:1.55}.table small{display:block;color:#8491a3;font-size:11px;margin-top:4px}.table tbody tr:hover{background:#fbfcff}.record-text{min-width:220px;max-width:390px;overflow-wrap:anywhere}.positive{color:#159464}.negative{color:#c44758}
.toolbar.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.toolbar.filters label{min-width:170px}.subtabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:12px}.subtabs button{padding:9px 12px!important}.subtabs button.active{color:var(--blue)!important;border-bottom:2px solid var(--blue);font-weight:700}.help{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#dfe5ff;color:var(--blue);font-weight:700;cursor:help}
.report-actions{display:flex;gap:8px;margin-top:12px}.report-preview,.report-detail{margin-top:14px;padding:15px;background:#f8f9fd;border-radius:8px}.pager{padding:16px 0;color:#64748b;font-size:12px}.pager button{margin-left:8px}.upload input{max-width:210px}.panel-body[hidden]{display:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #879ffc;outline-offset:3px}
@media(max-width:900px){.app main{margin-left:210px;width:calc(100% - 210px)}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){aside{position:static}.app main{margin-left:0;width:100%}#tabs{display:flex;overflow:auto}.app{flex-direction:column}.hero{margin-top:0}.cards{gap:9px}.panel{overflow:visible}.table-scroll{max-width:100%}.toolbar{align-items:stretch}}

.edit-box{margin:14px 0;padding:16px;border:1px solid #b9c8ff;border-radius:10px;background:#f7f9ff}.edit-box .panel-head{margin-bottom:4px}.editing-row{background:#f5f7ff!important}
.audit-panel{padding:12px 16px}.audit-panel h3{font-size:13px;margin-bottom:8px}.audit-list{max-height:260px;overflow:auto}.audit-list p{margin:0;padding:3px 0;color:#7c8899;font-size:11px;line-height:1.35;border-bottom:1px solid #f1f3f7}.audit-list p:last-child{border-bottom:0}
.edit-modal{position:fixed;inset:0;z-index:30;background:#17223566;display:grid;place-items:center;padding:20px}.edit-modal-card{width:min(520px,100%);background:#fff;border-radius:14px;padding:22px;box-shadow:0 20px 60px #17223533}.edit-modal-card h3{margin:0 0 16px}.edit-modal-card label{display:block;margin:12px 0;font-size:12px;color:#64748b}.edit-modal-card input,.edit-modal-card textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit}.edit-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
