:root{--bg: #f7f6f2;--surface: #ffffff;--border: #e2e0d8;--text: #1f1e1b;--text-muted: #6b6a63;--accent: #185fa5;--accent-bg: #e6f1fb;--success: #0f6e56;--success-bg: #e1f5ee;--danger: #a32d2d;--danger-bg: #fcebeb;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;width:100%;max-width:380px}.auth-card h1{font-size:20px;margin:0 0 4px;font-weight:600}.muted{color:var(--text-muted);font-size:14px}.muted.small{font-size:13px}label{display:block;font-size:13px;color:var(--text-muted);margin:14px 0 4px}input,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--surface);color:var(--text)}button{margin-top:18px;width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--text);background:var(--text);color:#fff;font-size:14px;font-weight:500;cursor:pointer}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.error-banner{background:var(--danger-bg);color:var(--danger);padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:8px}.success-banner{background:var(--success-bg);color:var(--success);padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:8px}.info-banner{background:var(--accent-bg);color:var(--accent);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.role-toggle{display:flex;gap:8px;margin-top:12px}.role-toggle button{margin-top:0;flex:1;background:transparent;color:var(--text);border:1px solid var(--border)}.role-toggle button.active{background:var(--text);color:#fff}.page{max-width:960px;margin:0 auto;padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:10px}.page-header h1{font-size:20px;margin:0;font-weight:600}.header-actions{display:flex;align-items:center;gap:10px}.header-actions button,.header-actions a{width:auto;margin-top:0;padding:8px 14px;font-size:13px;text-decoration:none;display:inline-block}.tier-badge,.role-badge{background:var(--border);padding:4px 12px;border-radius:20px;font-size:12px}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.module-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.module-card.clickable{cursor:pointer}.module-icon{font-size:22px}.module-name{font-weight:500;font-size:14px;margin:10px 0 2px}.module-desc{font-size:12px;color:var(--text-muted);margin:0}.module-note{font-size:11px;color:var(--accent);margin:8px 0 0}.approval-list,.module-table{background:var(--surface);border:1px solid var(--border);border-radius:12px}.approval-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px}.approval-row:last-child{border-bottom:none}.approval-name{font-weight:500;font-size:14px}.approval-actions{display:flex;gap:8px}.approval-actions button{width:auto;margin-top:0;padding:6px 14px;font-size:13px}.role-tag{font-size:11px;padding:1px 8px;border-radius:20px;margin-left:6px}.role-tag.student{background:var(--accent-bg);color:var(--accent)}.role-tag.lecturer{background:#eeedfe;color:#3c3489}.module-table{width:100%;border-collapse:collapse;font-size:13px}.module-table th,.module-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}.module-table select{padding:4px 8px;font-size:12px}.plan-option{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:10px;cursor:pointer}.plan-option.selected{border:2px solid var(--accent)}.plan-option input{width:auto}.plan-amount{margin-left:auto;font-weight:500}.plan-summary{display:flex;justify-content:space-between;background:var(--bg);padding:10px 12px;border-radius:8px;font-size:13px;margin-top:12px}.inline-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:20px}.inline-form .form-title{font-weight:500;font-size:14px;margin:0 0 10px}.inline-form textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical}.inline-form button{width:auto;padding:8px 16px;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:6px}.form-grid label,.inline-form>label{margin:6px 0 4px}.checkbox-row{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-top:22px}.checkbox-row input{width:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}.data-table tr:last-child td{border-bottom:none}.card-link{display:inline-block;margin-top:10px;font-size:12px;color:var(--accent);text-decoration:none}.post-list{display:flex;flex-direction:column;gap:10px}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.post-date{font-size:11px;color:var(--text-muted);margin:10px 0 0}.member-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;margin-bottom:8px}.showcase-header{display:flex;justify-content:space-between;align-items:center}.status-tag{display:inline-block;font-size:11px;padding:2px 10px;border-radius:20px;margin-top:10px}.status-pending{background:#fdf0da;color:#9a6a12}.status-approved{background:var(--success-bg);color:var(--success)}.status-rejected{background:var(--danger-bg);color:var(--danger)}.module-card.clickable{text-decoration:none;color:inherit;display:block}.cms-layout{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start}@media (max-width: 700px){.cms-layout{grid-template-columns:1fr}}.cms-nav{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px}.cms-nav-item{width:100%;margin-top:0;text-align:left;background:transparent;color:var(--text);border:none;padding:10px 12px;border-radius:8px;font-size:13px;cursor:pointer}.cms-nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.cms-content{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.cms-content textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;margin-top:4px}.cms-content button[type=submit]{width:auto;padding:8px 18px;font-size:13px}.file-upload{margin-top:4px}.file-upload input[type=file]{padding:8px;font-size:13px}.upload-progress{position:relative;height:6px;background:var(--border);border-radius:4px;margin-top:8px;overflow:hidden}.upload-progress-bar{height:100%;background:var(--accent);transition:width .2s ease}.upload-progress span{font-size:11px;color:var(--text-muted);display:block;margin-top:4px}.file-preview{margin-top:10px}.preview-image{width:100%;max-height:180px;object-fit:cover;border-radius:8px;margin-bottom:8px}.preview-media{width:100%;max-height:180px;border-radius:8px;margin-bottom:8px;background:#000}.preview-audio{width:100%;margin-bottom:8px}.preview-pdf{width:100%;height:220px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.file-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.card-link-button{width:auto;margin-top:0;padding:6px 14px;font-size:12px;background:var(--text);color:#fff;border:none;border-radius:8px;cursor:pointer}.card-link-button:disabled{opacity:.5;cursor:not-allowed}.quota-bar{height:10px;background:var(--border);border-radius:6px;overflow:hidden;margin-top:10px}.quota-bar-fill{height:100%;background:var(--accent)}.level-tabs{display:flex;gap:6px;flex-wrap:wrap}.level-tab{width:auto;margin-top:0;padding:8px 16px;font-size:13px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px}.level-tab.active{background:var(--text);color:#fff;border-color:var(--text)}.course-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.course-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cgpa-card{display:flex;justify-content:space-between;align-items:center;background:var(--text);color:#fff;border-radius:12px;padding:16px 20px;margin-bottom:20px}.cgpa-card .muted.small{color:#ffffffb3}.cgpa-value{font-size:28px;font-weight:600}.portfolio-header{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.portfolio-name{font-size:22px;font-weight:600;margin:0}.portfolio-headline{font-size:14px;color:var(--text-secondary, var(--text-muted));margin:4px 0 0}.portfolio-bio{font-size:14px;margin:12px 0 0;white-space:pre-wrap}.skill-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.skill-tag{background:var(--accent-bg);color:var(--accent);font-size:12px;padding:3px 12px;border-radius:20px}@media print{.no-print{display:none!important}body{background:#fff}.portfolio-page{padding:0;max-width:100%}.module-card,.portfolio-header,.course-section{break-inside:avoid;border:1px solid #ddd}}.engagement-row{display:flex;gap:8px;margin-top:10px}.engagement-row button{width:auto;margin-top:0;padding:4px 12px;font-size:12px}.like-button.liked{color:#d9364f;border-color:#d9364f}.comment-thread{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.comment-row{display:flex;align-items:baseline;gap:6px;font-size:12px;margin-bottom:6px;flex-wrap:wrap}.comment-author{font-weight:500}.comment-body{color:var(--text);flex:1}.comment-delete{width:auto;margin-top:0;padding:0 6px;font-size:14px;line-height:1;border:none}.comment-form{display:flex;gap:6px;margin-top:8px}.comment-form input{flex:1;padding:6px 10px;font-size:12px}.comment-form button{width:auto;margin-top:0;padding:6px 12px;font-size:12px}.notification-bell{position:relative;display:inline-block}.bell-button{width:auto;margin-top:0;padding:6px 10px;font-size:16px;position:relative}.bell-badge{position:absolute;top:0;right:0;background:#d9364f;color:#fff;font-size:10px;font-weight:600;border-radius:10px;padding:1px 5px;line-height:1.4}.bell-dropdown{position:absolute;left:0;top:calc(100% + 6px);width:min(300px,92vw);max-height:400px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:50}.bell-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px;font-weight:500}.bell-dropdown-header button{width:auto;margin-top:0;padding:2px 8px;font-size:11px}.bell-item{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer}.bell-item:hover{background:var(--bg)}.bell-item.unread{background:var(--accent-bg)}.bell-item-title{font-size:13px;font-weight:500;margin:0}.bell-item-body{font-size:12px;color:var(--text-muted);margin:2px 0 0}.bell-view-all{width:100%;margin-top:0;padding:10px;font-size:12px;border-radius:0 0 12px 12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.stat-value{font-size:26px;font-weight:600;margin:4px 0 0}.analytics-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.ranked-list{margin:10px 0 0;padding-left:20px}.ranked-list li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:13px;border-bottom:1px solid var(--border)}.ranked-list li:last-child{border-bottom:none}.chat-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;height:60vh;min-height:420px}@media (max-width: 700px){.chat-layout{grid-template-columns:1fr;height:auto}}.chat-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;overflow-y:auto}.chat-channel-button,.chat-thread-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:4px;padding:8px 10px;font-size:13px;text-align:left;border-radius:8px}.chat-thread-button.active{background:var(--accent-bg);color:var(--accent)}.chat-main{background:var(--surface);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.chat-thread-header{padding:12px 16px;border-bottom:1px solid var(--border);font-weight:500;font-size:14px}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.chat-bubble{max-width:75%;background:var(--bg);border-radius:12px;padding:8px 12px;align-self:flex-start}.chat-bubble.mine{background:var(--text);color:#fff;align-self:flex-end}.chat-bubble-sender{display:block;font-size:11px;opacity:.7;margin-bottom:2px}.chat-bubble p{margin:0;font-size:14px}.chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input-row input{flex:1;padding:8px 12px}.chat-input-row button{width:auto;margin-top:0;padding:8px 16px}
