/* AccrePrep — Production CSS */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
:root{
  --blue-50:#E6F1FB;--blue-100:#B5D4F4;--blue-400:#378ADD;--blue-600:#185FA5;--blue-800:#0C447C;
  --green-50:#EAF3DE;--green-100:#C0DD97;--green-200:#97C459;--green-600:#3B6D11;--green-800:#27500A;
  --amber-50:#FAEEDA;--amber-100:#FAC775;--amber-600:#854F0B;--amber-800:#633806;
  --red-50:#FCEBEB;--red-100:#F09595;--red-200:#E24B4A;--red-600:#A32D2D;--red-800:#791F1F;
  --purple-50:#EEEDFE;--purple-100:#CECBF6;--purple-600:#534AB7;--purple-800:#3C3489;
  --teal-50:#E1F5EE;--teal-100:#9FE1CB;--teal-600:#0F6E56;--teal-800:#085041;
  --gray-50:#F1EFE8;--gray-100:#D3D1C7;--gray-600:#5F5E5A;
  --bg-primary:#ffffff;--bg-secondary:#f6f5f2;--bg-tertiary:#eeecea;
  --text-primary:#1c1c1a;--text-secondary:#52524f;--text-tertiary:#96968e;
  --border-light:rgba(0,0,0,0.08);--border-medium:rgba(0,0,0,0.14);
  --radius-sm:6px;--radius-md:9px;--radius-lg:14px;
  --sidebar-w:248px;--topbar-h:60px;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
body{font-family:var(--font);background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}

/* Layout */
.app{display:flex;min-height:100vh}
.main{flex:1;display:flex;flex-direction:column;min-width:0;overflow-x:hidden}
.content{padding:26px 30px;display:flex;flex-direction:column;gap:22px}

/* Sidebar */
.sidebar{width:var(--sidebar-w);flex-shrink:0;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 60%,#0f3460 100%);border-right:none;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-logo{display:flex;align-items:center;gap:12px;padding:20px 18px 17px;border-bottom:1px solid rgba(255,255,255,.08)}
.logo-icon{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#e2c97e,#c9a84c);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-text{font-size:15px;font-weight:600;color:#fff}
.logo-sub{font-size:12px;color:rgba(255,255,255,.5);margin-top:1px}
.sidebar-section{padding:12px 10px 4px}
.sidebar-section-label{font-size:11px;font-weight:600;color:rgba(255,255,255,.4);letter-spacing:.07em;text-transform:uppercase;padding:0 10px;margin-bottom:5px}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius-md);font-size:14.5px;color:rgba(255,255,255,.7);transition:background .12s;margin-bottom:2px;text-decoration:none}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item.active{background:rgba(255,255,255,.12);color:#fff;font-weight:500}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.6}
.nav-item.active svg{opacity:1}
.nav-badge{margin-left:auto;font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:20px}
.nb-red{background:rgba(226,75,74,.25);color:#fca5a5;border:0.5px solid rgba(226,75,74,.4)}
.nb-amber{background:rgba(250,199,117,.2);color:#fcd34d;border:0.5px solid rgba(250,199,117,.4)}
.nb-blue{background:rgba(55,138,221,.2);color:#93c5fd;border:0.5px solid rgba(55,138,221,.4)}
.sidebar-bottom{margin-top:auto;padding:14px 10px;border-top:1px solid rgba(255,255,255,.08)}
.user-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md);text-decoration:none}
.user-row:hover{background:rgba(255,255,255,.08)}
.user-name{font-size:14px;font-weight:500;color:#fff}
.user-role{font-size:12px;color:rgba(255,255,255,.5)}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 30px;height:var(--topbar-h);background:var(--bg-primary);border-bottom:0.5px solid var(--border-light);flex-shrink:0}
.topbar-title{font-size:17px;font-weight:500;color:var(--text-primary)}
.topbar-right{display:flex;align-items:center;gap:10px}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-tertiary)}
.breadcrumb a{color:var(--text-tertiary)}
.breadcrumb a:hover{color:var(--text-primary)}
.breadcrumb .current{color:var(--text-primary);font-weight:500}

/* Notif dot */
.notif-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:#E24B4A;border:2px solid var(--bg-primary)}

/* Avatar */
.avatar{width:34px;height:34px;border-radius:50%;background:var(--blue-50);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--blue-800);flex-shrink:0}
.avatar-sm{width:26px;height:26px;font-size:11px}
.avatar-lg{width:44px;height:44px;font-size:16px}
.avatar-xl{width:56px;height:56px;font-size:20px}
.avatar-unassigned{background:var(--bg-secondary);color:var(--text-tertiary)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;font-family:var(--font);border:0.5px solid var(--border-medium);background:var(--bg-primary);color:var(--text-secondary);transition:background .12s;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--bg-secondary)}
.btn svg{width:15px;height:15px;flex-shrink:0}
.btn-primary{background:linear-gradient(135deg,#e2c97e,#c9a84c);color:#1a1a2e;border-color:transparent;font-weight:600}
.btn-primary:hover{opacity:.88;color:#1a1a2e}
.btn-sm{height:32px;padding:0 14px;font-size:13px}
.btn-xs{height:28px;padding:0 11px;font-size:12.5px}
.btn-approve{background:var(--green-50);color:var(--green-800);border-color:var(--green-100)}
.btn-approve:hover{background:var(--green-100)}
.btn-reject,.btn-danger{background:var(--red-50);color:var(--red-600);border-color:var(--red-100)}
.btn-reject:hover,.btn-danger:hover{background:var(--red-100)}
.btn-icon{width:38px;height:38px;padding:0}
.w-full{width:100%;justify-content:center}

/* Cards */
.card{background:var(--bg-primary);border:0.5px solid var(--border-light);border-radius:var(--radius-lg)}
.card-pad{padding:20px 22px}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:0.5px solid var(--border-light)}
.card-title{font-size:15.5px;font-weight:500;color:var(--text-primary)}

/* Stats */
.stat-grid{display:grid;gap:14px}
.stat-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stat-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px 18px}
.stat-label{font-size:13px;color:var(--text-tertiary);margin-bottom:7px}
.stat-val{font-size:28px;font-weight:500;color:var(--text-primary);line-height:1}
.stat-sub{font-size:12.5px;color:var(--text-tertiary);margin-top:5px}
.stat-blue{color:var(--blue-600)}.stat-green{color:var(--green-600)}.stat-amber{color:var(--amber-600)}.stat-red{color:var(--red-600)}.stat-gray{color:var(--text-tertiary)}

/* Pills */
.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:3px 10px;border-radius:20px;white-space:nowrap;border:0.5px solid transparent}
.pill-prep{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-100)}
.pill-review{background:var(--amber-50);color:var(--amber-800);border-color:var(--amber-100)}
.pill-done{background:var(--green-50);color:var(--green-800);border-color:var(--green-100)}
.pill-closed{background:var(--gray-50);color:var(--gray-600);border-color:var(--gray-100)}
.pill-approved{background:var(--green-50);color:var(--green-800);border-color:var(--green-100)}
.pill-submitted{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-100)}
.pill-progress{background:var(--amber-50);color:var(--amber-800);border-color:var(--amber-100)}
.pill-rejected{background:var(--red-50);color:var(--red-600);border-color:var(--red-100)}
.pill-none{background:var(--bg-secondary);color:var(--text-tertiary);border-color:var(--border-light)}
.pill-pec{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-100)}
.pill-ntc{background:var(--teal-50);color:var(--teal-800);border-color:var(--teal-100)}
.pill-hec{background:var(--purple-50);color:var(--purple-800);border-color:var(--purple-100)}
.pill-scheduled{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-100)}
.pill-completed{background:var(--green-50);color:var(--green-800);border-color:var(--green-100)}
.pill-cancelled{background:var(--red-50);color:var(--red-600);border-color:var(--red-100)}

/* Progress */
.progress-wrap{display:flex;align-items:center;gap:10px}
.progress-bar{flex:1;height:7px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}
.progress-fill{height:100%;background:var(--blue-600);border-radius:4px}
.progress-fill.green{background:var(--green-600)}
.progress-pct{font-size:13px;color:var(--text-tertiary);min-width:36px;text-align:right}

/* Lifecycle */
.lifecycle{display:flex;margin-top:16px}
.lc-step{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;font-weight:500;padding:7px 4px;background:var(--bg-secondary);color:var(--text-tertiary);border:0.5px solid var(--border-light)}
.lc-step:first-child{border-radius:20px 0 0 20px}
.lc-step:last-child{border-radius:0 20px 20px 0}
.lc-done{background:var(--green-50);color:var(--green-800);border-color:var(--green-100)}
.lc-active{background:var(--blue-600);color:#fff;border-color:var(--blue-600)}
.lc-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}

/* Tabs */
.tabs{display:flex;border-bottom:0.5px solid var(--border-light)}
.tab{padding:11px 18px;font-size:14px;color:var(--text-secondary);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-0.5px;white-space:nowrap}
.tab:hover{color:var(--text-primary)}
.tab.active{color:var(--blue-600);border-bottom-color:var(--blue-600);font-weight:500}

/* Forms */
.field{margin-bottom:16px}
.field label{display:block;font-size:13.5px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:10px 14px;border:0.5px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:var(--font);outline:none;transition:border-color .15s,box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-400);box-shadow:0 0 0 3px var(--blue-50)}
.field textarea{resize:vertical;min-height:90px;line-height:1.55}
.field input[type="file"]{padding:8px}
.field-hint{font-size:12.5px;color:var(--text-tertiary);margin-top:5px}

/* Grids */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}

/* Section header */
.section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.section-title{font-size:16px;font-weight:500;color:var(--text-primary)}
.section-link{font-size:13.5px;color:var(--blue-600);cursor:pointer;background:none;border:none;font-family:var(--font);padding:0;text-decoration:none}
.section-link:hover{text-decoration:underline}

/* Alerts */
.alert{padding:13px 16px;border-radius:var(--radius-md);font-size:14px;margin-bottom:16px}
.alert-error{background:var(--red-50);color:var(--red-600);border:0.5px solid var(--red-100)}
.alert-info{background:var(--blue-50);color:var(--blue-800);border:0.5px solid var(--blue-100)}
.alert-success{background:var(--green-50);color:var(--green-800);border:0.5px solid var(--green-100)}
.alert-warn{background:var(--amber-50);color:var(--amber-800);border:0.5px solid var(--amber-100)}

/* Flash */
.flash{padding:13px 30px;font-size:14px;font-weight:500}
.flash-success{background:var(--green-50);color:var(--green-800);border-bottom:0.5px solid var(--green-100)}
.flash-error{background:var(--red-50);color:var(--red-600);border-bottom:0.5px solid var(--red-100)}

/* Modal */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:1000;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex}
.modal{background:var(--bg-primary);border-radius:var(--radius-lg);width:100%;overflow:hidden;max-height:90vh;display:flex;flex-direction:column}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:0.5px solid var(--border-light);flex-shrink:0}
.modal-title{font-size:17px;font-weight:500}
.modal-body{padding:24px;overflow-y:auto}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:0.5px solid var(--border-light);flex-shrink:0}
.modal-close{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:18px;padding:4px 8px;border-radius:var(--radius-sm);line-height:1}
.modal-close:hover{background:var(--bg-secondary)}

/* Table */
.data-table{width:100%;border-collapse:collapse;font-size:14px}
.data-table th{text-align:left;font-size:12.5px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:12px 18px;border-bottom:0.5px solid var(--border-light);background:var(--bg-secondary)}
.data-table td{padding:14px 18px;border-bottom:0.5px solid var(--border-light);vertical-align:middle}
.data-table tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:var(--bg-secondary);cursor:pointer}

/* Thread */
.thread-msg{padding:16px 18px;border-bottom:0.5px solid var(--border-light)}
.thread-msg:last-child{border-bottom:none}
.msg-submission{background:var(--blue-50);border-left:3px solid var(--blue-400);padding-left:15px}
.msg-rejection{background:var(--red-50);border-left:3px solid var(--red-200);padding-left:15px}
.msg-approval{background:var(--green-50);border-left:3px solid var(--green-200);padding-left:15px}
.msg-comment{background:var(--bg-primary)}
.msg-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.msg-name{font-size:14px;font-weight:500}
.msg-time{font-size:12.5px;color:var(--text-tertiary);margin-left:auto}
.msg-body{font-size:14.5px;color:var(--text-secondary);line-height:1.6}

/* Role chips */
.role-chip{font-size:11.5px;font-weight:500;padding:3px 9px;border-radius:20px;border:0.5px solid transparent}
.role-superadmin{background:var(--purple-50);color:var(--purple-800);border-color:var(--purple-100)}
.role-deptadmin{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-100)}
.role-faculty{background:var(--teal-50);color:var(--teal-800);border-color:var(--teal-100)}

/* Settings */
.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:0;min-height:calc(100vh - 60px)}
.settings-nav{background:var(--bg-primary);border-right:0.5px solid var(--border-light);padding:16px 10px}
.snav-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.07em;padding:0 12px;margin:14px 0 5px}
.snav-label:first-child{margin-top:0}
.snav-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--radius-md);cursor:pointer;font-size:14px;color:var(--text-secondary);transition:background .12s;margin-bottom:2px;text-decoration:none}
.snav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}
.snav-item.active,.snav-item.active svg{background:var(--bg-secondary);color:var(--text-primary);font-weight:500}
.settings-content{padding:24px 28px}
.panel{display:none}.panel.active{display:block}
.panel-title{font-size:19px;font-weight:500;margin-bottom:4px}
.panel-sub{font-size:14px;color:var(--text-tertiary);margin-bottom:22px}
.item-row{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:0.5px solid var(--border-light)}
.item-row:last-child{border-bottom:none}
.item-row:hover{background:var(--bg-secondary)}
.item-main{flex:1;min-width:0}
.item-name{font-size:14.5px;font-weight:500}
.item-sub{font-size:13px;color:var(--text-tertiary);margin-top:3px}
.ct-hdr{display:flex;align-items:center;gap:10px;padding:13px 18px;background:var(--bg-secondary);border-bottom:0.5px solid var(--border-light);flex-wrap:wrap}
.ct-crit{display:flex;align-items:center;gap:10px;padding:11px 18px;border-bottom:0.5px solid var(--border-light);cursor:pointer;transition:background .12s}
.ct-crit:hover{background:var(--bg-secondary)}
.ct-sp{display:flex;align-items:flex-start;gap:10px;padding:9px 18px 9px 44px;border-bottom:0.5px solid var(--border-light);font-size:13.5px;color:var(--text-secondary)}
.ct-sp:last-child{border-bottom:none}
.ctog{width:14px;height:14px;transition:transform .2s;flex-shrink:0;color:var(--text-tertiary)}
.ctog.open{transform:rotate(90deg)}

/* Search / filter bar */
.list-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.search-wrap{position:relative;flex:1;min-width:200px;max-width:340px}
.search-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-tertiary)}
.search-input{width:100%;height:36px;padding:0 12px 0 34px;border:0.5px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:13.5px;font-family:var(--font);outline:none;transition:border-color .15s}
.search-input:focus{border-color:var(--blue-400);box-shadow:0 0 0 3px var(--blue-50)}
.filter-select{height:36px;padding:0 10px;border:0.5px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-secondary);font-size:13.5px;font-family:var(--font);cursor:pointer;outline:none}
.filter-select:focus{border-color:var(--blue-400)}
.list-toolbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}

/* Pagination */
.pager{display:flex;align-items:center;gap:4px;padding:18px 0 4px;justify-content:center;flex-wrap:wrap}
.pager-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;color:var(--text-secondary);border:0.5px solid var(--border-light);background:var(--bg-primary);text-decoration:none;transition:background .12s,border-color .12s}
.pager-btn:hover{background:var(--bg-secondary);border-color:var(--border-medium);color:var(--text-primary)}
.pager-active{background:linear-gradient(135deg,#e2c97e,#c9a84c)!important;border-color:transparent!important;color:#1a1a2e!important;font-weight:700}
.pager-disabled{color:var(--text-tertiary);pointer-events:none;background:var(--bg-secondary)}
.pager-ellipsis{color:var(--text-tertiary);font-size:13px;padding:0 4px;line-height:34px}
.pager-info{font-size:12.5px;color:var(--text-tertiary);margin-left:8px}

/* Misc */
hr.divider{border:none;border-top:0.5px solid var(--border-light);margin:16px 0}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 24px;text-align:center}
.empty-state p{font-size:15px;color:var(--text-tertiary);margin-bottom:16px}
