*{box-sizing:border-box;margin:0;padding:0}
:root{--primary:#1a5276;--primary-light:#d6eaf8;--accent:#2e86c1;--success:#27ae60;--warning:#f39c12;--danger:#e74c3c;--gray:#95a5a6;--light:#f8f9fa;--border:#e5e7eb;--text:#2c3e50;--text-muted:#7f8c8d;--radius:8px;--radius-lg:12px}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--text);background:#f5f6fa;line-height:1.5;font-size:14px}
a{color:var(--accent);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:1rem}

/* Nav */
.nav{background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:52px}
.nav-brand{color:#fff;font-weight:600;font-size:15px}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-user{font-size:13px;opacity:.8}
.nav-link{color:#fff;font-size:13px;opacity:.8}
.nav-link:hover{opacity:1}

/* Alerts */
.alert{padding:10px 16px;border-radius:var(--radius);margin-bottom:1rem;font-size:13px}
.alert-success{background:#d4edda;color:#155724}
.alert-error{background:#f8d7da;color:#721c24}
.alert-warning{background:#fff3cd;color:#856404}

/* Cards */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.card-title{font-size:16px;font-weight:600}

/* Metrics */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:1.5rem}
.metric{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.metric-label{font-size:12px;color:var(--text-muted);margin-bottom:4px}
.metric-value{font-size:22px;font-weight:600}
.metric-value.danger{color:var(--danger)}
.metric-value.warning{color:var(--warning)}
.metric-value.success{color:var(--success)}

/* Badges */
.badge{display:inline-block;font-size:11px;padding:3px 10px;border-radius:20px;font-weight:500}
.badge-success{background:#d4edda;color:#155724}
.badge-warning{background:#fff3cd;color:#856404}
.badge-danger{background:#f8d7da;color:#721c24}
.badge-info{background:var(--primary-light);color:var(--primary)}
.badge-gray{background:#eee;color:#666}

/* Buttons */
.btn{display:inline-block;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text);transition:all .15s}
.btn:hover{background:var(--light)}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:#154360}
.btn-sm{padding:5px 12px;font-size:12px}
.btn-danger{color:var(--danger);border-color:var(--danger)}
.btn-success{background:var(--success);color:#fff;border-color:var(--success)}

/* Forms */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:4px;color:var(--text-muted)}
.form-control{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit}
.form-control:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(46,134,193,.15)}
select.form-control{appearance:auto}
textarea.form-control{min-height:80px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

/* Filters */
.filters{display:flex;gap:8px;margin-bottom:1rem;flex-wrap:wrap;align-items:center}
.filter-btn{padding:6px 14px;font-size:12px;border-radius:20px;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text-muted);transition:all .15s}
.filter-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--accent)}
.search-input{padding:6px 12px;border:1px solid var(--border);border-radius:20px;font-size:13px;width:200px}

/* Student list */
.student-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.student-row:last-child{border-bottom:none}
.student-row:hover{background:var(--light);margin:0 -1.25rem;padding:12px 1.25rem}
.avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}
.av-purple{background:#eeedfe;color:#534ab7}
.av-teal{background:#e1f5ee;color:#0f6e56}
.av-coral{background:#faece7;color:#993c1d}
.av-blue{background:var(--primary-light);color:var(--primary)}
.student-info{flex:1;min-width:0}
.student-name{font-size:14px;font-weight:600}
.student-sub{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.student-progress{width:120px;text-align:right;flex-shrink:0}
.student-progress .pct{font-size:12px;color:var(--text-muted)}

/* Progress bar */
.progress{height:6px;background:#eee;border-radius:3px;overflow:hidden}
.progress-fill{height:100%;border-radius:3px;transition:width .3s}
.progress-fill.green{background:var(--success)}
.progress-fill.amber{background:var(--warning)}
.progress-fill.red{background:var(--danger)}

/* Document stages */
.doc-row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);gap:8px}
.doc-row:last-child{border-bottom:none}
.doc-name{flex:1;font-size:13px;min-width:0}
.doc-name small{display:block;color:var(--text-muted);font-size:11px}
.stages{display:flex;gap:4px;flex-shrink:0}
.stage{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all .15s;position:relative}
.stage.done{background:var(--success);border-color:var(--success);color:#fff}
.stage.current{background:#fff3cd;border-color:var(--warning);color:#856404}
.stage:hover{transform:scale(1.2)}
.stage[title]:hover::after{content:attr(title);position:absolute;bottom:26px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:3px 8px;border-radius:4px;font-size:10px;white-space:nowrap;z-index:10}
.doc-deadline{font-size:12px;min-width:80px;text-align:right;flex-shrink:0}
.doc-deadline.done{color:var(--success)}
.doc-deadline.urgent{color:var(--danger);font-weight:600}
.doc-deadline.warning{color:var(--warning)}
.doc-actions{display:flex;gap:4px;flex-shrink:0}

/* Upload zone */
.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:20px;text-align:center;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all .15s}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);color:var(--accent);background:var(--primary-light)}

/* University tags */
.uni-tag{display:inline-block;font-size:11px;padding:3px 8px;border-radius:var(--radius);background:var(--light);color:var(--text-muted);margin:2px}
.uni-tag.active{background:var(--primary-light);color:var(--primary)}

/* Section titles */
.section-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}

/* Profile header */
.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:1.5rem}
.profile-header .avatar{width:56px;height:56px;font-size:20px}
.profile-name{font-size:20px;font-weight:600}
.profile-sub{font-size:13px;color:var(--text-muted)}

/* File list */
.file-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:12px}
.file-item a{color:var(--accent)}

/* Modal */
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:100;align-items:center;justify-content:center}
.modal-overlay.show{display:flex}
.modal{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}
.modal-title{font-size:16px;font-weight:600;margin-bottom:1rem}

/* Responsive */
@media(max-width:768px){
  .metrics{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr}
  .student-row{flex-wrap:wrap}
  .student-progress{width:100%;text-align:left;margin-top:4px}
  .doc-row{flex-wrap:wrap}
  .doc-name{width:100%}
  .stages{margin-left:0}
  .doc-deadline{margin-left:auto}
  .filters{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .nav{padding:0 1rem}
  .container{padding:.75rem}
  .profile-header{flex-direction:column;text-align:center}
}

/* Cabinet specific */
.cabinet-nav{background:var(--primary);color:#fff;padding:12px 1rem;text-align:center}
.cabinet-nav h1{font-size:16px;font-weight:500}
.cabinet-nav small{opacity:.7;font-size:12px}

/* Login */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--primary)}
.login-card{background:#fff;padding:2rem;border-radius:var(--radius-lg);width:100%;max-width:380px}
.login-title{font-size:20px;font-weight:600;text-align:center;margin-bottom:1.5rem;color:var(--primary)}
.login-subtitle{text-align:center;color:var(--text-muted);font-size:13px;margin-bottom:1.5rem}

/* Tabs for universities in cabinet */
.uni-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:1rem;overflow-x:auto}
.uni-tab{padding:8px 16px;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;color:var(--text-muted);transition:all .15s}
.uni-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}
.uni-tab:hover{color:var(--text)}
.uni-content{display:none}
.uni-content.active{display:block}
