:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #e5e7eb;--border-strong: #cbd5e1;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--primary-600: #4338ca;--primary-soft: #eef2ff;--success: #059669;--success-soft: #ecfdf5;--warning: #d97706;--warning-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--sidebar: #111827;--sidebar-text: #cbd5e1;--radius: 12px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-lg: 0 20px 50px rgba(15, 23, 42, .25);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:22px;font-weight:700}h2{font-size:17px;font-weight:650}h3{font-size:15px;font-weight:600}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.spacer{flex:1}.page{padding:24px;max-width:1280px;margin:0 auto}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-head .sub{color:var(--muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:18px}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}@media (max-width: 900px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.page{padding:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:550;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:var(--surface-2);border-color:#94a3b8}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-600)}.btn.success{background:var(--success);border-color:var(--success);color:#fff}.btn.success:hover:not(:disabled){background:#047857}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-ghost{color:var(--danger);border-color:#fecaca}.btn.danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.btn.ghost{border-color:transparent;background:transparent}.btn.sm{height:30px;padding:0 10px;font-size:13px}.btn.block{width:100%}.btn-link{background:none;border:0;color:var(--primary);cursor:pointer;font:inherit;padding:0}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.ok:hover{color:var(--success);background:var(--success-soft)}.icon-btn.warn:hover{color:var(--warning);background:var(--warning-soft)}.icon-btn.danger:hover{color:var(--danger);background:var(--danger-soft)}.field{display:flex;flex-direction:column;gap:6px}.field label,.label{font-size:13px;font-weight:550;color:#334155}.input,select.input,textarea.input{height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);font:inherit;color:var(--text);width:100%}textarea.input{height:auto;min-height:90px;padding:10px 12px;resize:vertical}@media (pointer: coarse),(max-width: 820px){.input,input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.hint{font-size:12px;color:var(--muted)}.error-text{color:var(--danger);font-size:13px}.checklist{max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:9px;padding:6px}.checklist label{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-weight:400}.checklist label:hover{background:var(--surface-2)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fafbff}@media (max-width: 700px){.hide-sm{display:none}}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#f1f5f9;color:#475569;white-space:nowrap}.badge[data-s=Pending],.badge[data-s=Submitted]{background:var(--warning-soft);color:#b45309}.badge[data-s=Approved],.badge[data-s=Active]{background:var(--success-soft);color:#047857}.badge[data-s=Rejected]{background:var(--danger-soft);color:#b91c1c}.badge[data-s=Assigned]{background:var(--primary-soft);color:var(--primary-600)}.badge[data-s=Admin]{background:#fdf4ff;color:#a21caf}.badge[data-s=Mentor]{background:#ecfeff;color:#0e7490}.badge[data-s=Student]{background:var(--primary-soft);color:var(--primary-600)}.badge[data-s=Reviewer]{background:#fff7ed;color:#c2410c}.badge[data-s=Open]{background:var(--success-soft);color:#047857}.ft-icon{width:30px;height:30px;border-radius:8px;display:inline-grid;place-items:center;flex-shrink:0;background:#f1f5f9;color:#475569}.ft-icon[data-cat=Document]{background:#eff6ff;color:#2563eb}.ft-icon[data-cat=Spreadsheet]{background:#ecfdf5;color:#059669}.ft-icon[data-cat=Presentation]{background:#fff7ed;color:#ea580c}.ft-icon[data-cat=Pdf]{background:#fef2f2;color:#dc2626}.ft-icon[data-cat=Video]{background:#faf5ff;color:#9333ea}.ft-icon[data-cat=Audio]{background:#fdf2f8;color:#db2777}.ft-icon[data-cat=Image]{background:#f0fdfa;color:#0d9488}.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;font-size:13px;background:var(--primary-soft);color:var(--primary-600);flex-shrink:0;position:relative}.avatar.sm{width:28px;height:28px;font-size:11px}.avatar .dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#22c55e;border:2px solid #fff}.stat{padding:16px 18px}.stat .k{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;gap:6px}.stat .v{font-size:26px;font-weight:700;margin-top:6px}.stat .s{font-size:12px;color:var(--muted)}.meter{height:8px;background:var(--border);border-radius:99px;overflow:hidden}.meter>div{height:100%;background:var(--primary);border-radius:99px}.meter.warn>div{background:var(--warning)}.meter.full>div{background:var(--danger)}.modal-overlay{position:fixed;inset:0;background:#0f172a80;z-index:95;display:grid;place-items:center;padding:16px}.modal{background:var(--surface);border-radius:16px;width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:var(--shadow-lg)}.modal.wide{width:min(720px,100%)}.modal-head{padding:18px 20px 6px}.modal-body{padding:12px 20px;display:flex;flex-direction:column;gap:14px}.modal-foot{padding:12px 20px 18px;display:flex;justify-content:flex-end;gap:8px}.empty-state{text-align:center;padding:48px 16px;color:var(--muted)}.empty-state .ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:var(--primary-soft);color:var(--primary)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs button{background:none;border:0;padding:10px 14px;font:inherit;font-weight:550;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}.pill-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--danger);color:#fff;font-size:11px;font-weight:700}.credential{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:10px;padding:12px 14px}.rich{line-height:1.6;overflow-wrap:anywhere}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p{margin:0 0 .6em}.rich h1,.rich h2,.rich h3,.rich h4{margin:.9em 0 .4em;line-height:1.3}.rich h1{font-size:1.35em}.rich h2{font-size:1.2em}.rich h3{font-size:1.07em}.rich ul,.rich ol{margin:0 0 .6em;padding-left:1.5em}.rich li{margin:.2em 0}.rich blockquote{margin:0 0 .6em;padding:6px 12px;border-left:3px solid var(--primary);background:var(--primary-soft);border-radius:0 8px 8px 0}.rich pre{background:#0f172a;color:#e2e8f0;padding:10px 12px;border-radius:8px;overflow-x:auto;font-size:13px;white-space:pre-wrap}.rich code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.rich a{text-decoration:underline}.rich .ql-align-center{text-align:center}.rich .ql-align-right{text-align:right}.rich .ql-align-justify{text-align:justify}.rich .ql-indent-1{padding-left:2em}.rich .ql-indent-2{padding-left:4em}.rich .ql-indent-3{padding-left:6em}.rich img,.rich video{max-width:100%;height:auto;border-radius:8px}.rich video{background:#000;display:block;width:100%;max-width:720px;height:auto}.rich iframe{max-width:100%;border:0;border-radius:8px;aspect-ratio:16/9;height:auto;width:640px}.rich table{border-collapse:collapse;margin:0 0 .8em;max-width:100%}.rich td,.rich th{border:1px solid var(--border-strong);padding:6px 9px;vertical-align:top}.rich th{background:var(--surface-2)}.modal.task-modal{width:min(920px,100%)}
