:root{--primary:#0a4735;--primary-dark:#062e22;--primary-light:#14694f;--accent-bg:#dcefe6;--accent-text:#0a4735;--bg:#f4f7f5;--card:#fff;--text:#1f2937;--muted:#6b7280;--border:#e5e7eb;--success:#047857;--danger:#dc2626;--chat-own:#0a4735;--chat-other:#e5e7eb}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.header{background:var(--card);border-bottom:1px solid var(--border);z-index:50;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.header .brand{align-items:center;gap:.65rem;display:flex}.brand-logo{object-fit:contain;border-radius:8px;width:42px;height:42px}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-text strong{color:var(--primary);letter-spacing:.2px;font-size:1.15rem;font-weight:800}.brand-text small{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;font-size:.62rem}.header-actions{align-items:center;gap:.75rem;display:flex}.user-chip{color:var(--muted);font-size:.85rem}.btn{border:none;border-radius:8px;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;transition:background .15s,transform 50ms}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{background:#f9fafb}.btn-danger{border:1px solid var(--danger);color:var(--danger);background:0 0}.btn-danger:hover{background:#fef2f2}.btn-sm{padding:.3rem .7rem;font-size:.8rem}.hero{color:#fff;text-align:center;background:linear-gradient(135deg,#062e22 0%,#0a4735 60%,#14694f 100%);padding:5rem 2rem}.hero-logo{object-fit:contain;background:#fff;border-radius:20px;width:auto;max-width:260px;height:170px;margin-bottom:1.25rem;padding:1rem 1.5rem;box-shadow:0 12px 30px #00000040}.hero h1{margin-bottom:1rem;font-size:2.6rem}.hero p{opacity:.92;max-width:720px;margin:0 auto;font-size:1.1rem}.section{max-width:1000px;margin:0 auto;padding:3.5rem 2rem}.section h2{color:var(--primary-dark);margin-bottom:1rem;font-size:1.6rem}.section p{color:var(--muted);margin-bottom:1rem;line-height:1.7}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:2rem;display:grid}.info-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.info-card h3{color:var(--primary);margin-bottom:.5rem;font-size:1.05rem}.info-card p{margin:0;font-size:.9rem}.dropdown{position:relative}.dropdown-menu{background:var(--card);border:1px solid var(--border);border-radius:10px;min-width:180px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 10px 25px #0000001a}.dropdown-menu button{text-align:left;background:0 0;border:none;width:100%;padding:.8rem 1rem;font-size:.92rem;display:block}.dropdown-menu button:hover{background:#eef5f1}.login-wrapper{justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:2rem;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:14px;width:100%;max-width:420px;padding:2.5rem;box-shadow:0 10px 30px #0a47351a}.login-card h2{text-align:center;color:var(--primary-dark);margin-bottom:.35rem}.login-card .subtitle{text-align:center;color:var(--muted);margin-bottom:1.75rem;font-size:.9rem}.role-tabs{gap:.5rem;margin-bottom:1.5rem;display:flex}.role-tabs button{border:1px solid var(--border);color:var(--muted);background:#f9fafb;border-radius:8px;flex:1;padding:.6rem;font-size:.9rem;font-weight:600}.role-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.field{margin-bottom:1.1rem}.field label{margin-bottom:.35rem;font-size:.85rem;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:8px;width:100%;padding:.65rem .8rem;font-family:inherit;font-size:.95rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:2px solid #0a473540}.error-msg{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem}.page-container{max-width:1100px;margin:0 auto;padding:2rem}.page-title{margin-bottom:.35rem;font-size:1.4rem}.page-subtitle{color:var(--muted);margin-bottom:1.75rem;font-size:.9rem}.course-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.course-card{background:var(--card);border:1px solid var(--border);text-align:left;border-radius:12px;width:100%;padding:1.4rem;transition:box-shadow .15s,transform .15s}.course-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0a47351f}.course-card h3{color:var(--primary-dark);margin-bottom:.4rem;font-size:1.05rem}.course-card .semester-tag{color:var(--primary-dark);background:#dcefe6;border-radius:999px;margin-bottom:.6rem;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.course-card p{color:var(--muted);font-size:.87rem;line-height:1.5}.course-layout{grid-template-columns:280px 1fr;align-items:start;gap:1.25rem;display:grid}@media (max-width:820px){.course-layout{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);color:var(--primary-dark);background:#f9fafb;padding:.9rem 1.1rem;font-size:.92rem;font-weight:700}.member-item{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;width:100%;padding:.75rem 1.1rem;font-size:.9rem;display:block}.member-item:hover{background:#eef5f1}.member-item.active{background:#dcefe6}.member-item .badge{border-radius:999px;margin-left:.4rem;padding:.12rem .5rem;font-size:.68rem;font-weight:700}.badge-teacher{color:#92400e;background:#fef3c7}.badge-student{color:#374151;background:#e5e7eb}.chat-tabs{border-bottom:1px solid var(--border);display:flex}.chat-tabs button{color:var(--muted);background:#f9fafb;border:none;border-bottom:2px solid #0000;flex:1;padding:.8rem;font-size:.88rem;font-weight:600}.chat-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--card)}.chat-box{flex-direction:column;height:480px;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.6rem;padding:1rem;display:flex;overflow-y:auto}.chat-empty{color:var(--muted);margin:auto;font-size:.9rem}.msg{word-break:break-word;border-radius:14px;max-width:72%;padding:.55rem .85rem;font-size:.9rem;line-height:1.45}.msg.own{background:var(--chat-own);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.msg.other{background:var(--chat-other);border-bottom-left-radius:4px;align-self:flex-start}.msg .sender-name{opacity:.75;margin-bottom:.15rem;font-size:.7rem;font-weight:700;display:block}.msg .time{opacity:.65;text-align:right;margin-top:.2rem;font-size:.65rem;display:block}.chat-input{border-top:1px solid var(--border);gap:.6rem;padding:.85rem;display:flex}.chat-input input{border:1px solid var(--border);border-radius:999px;flex:1;padding:.65rem .9rem;font-family:inherit;font-size:.9rem}.chat-input input:focus{border-color:var(--primary);outline:2px solid #0a473540}.chat-context{color:var(--muted);border-bottom:1px solid var(--border);background:#f9fafb;padding:.55rem 1rem;font-size:.82rem}.admin-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.admin-tabs button{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:999px;padding:.6rem 1.2rem;font-size:.88rem;font-weight:600}.admin-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.admin-section{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.admin-section-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.admin-section-header h3{color:var(--primary-dark);font-size:1.05rem}.table-wrapper{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:.88rem}table.data-table th{text-align:left;border-bottom:2px solid var(--border);color:var(--muted);white-space:nowrap;background:#f9fafb;padding:.65rem .75rem;font-weight:700}table.data-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:.65rem .75rem}table.data-table tr:hover td{background:#f9fafb}.tag-list{flex-wrap:wrap;gap:.3rem;display:flex}.tag{color:var(--primary-dark);white-space:nowrap;background:#dcefe6;border-radius:999px;padding:.12rem .55rem;font-size:.72rem;font-weight:600}.modal-overlay{z-index:100;background:#11182780;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;width:100%;max-width:480px;max-height:90vh;padding:1.75rem;overflow-y:auto}.modal h3{color:var(--primary-dark);margin-bottom:1.25rem}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1.5rem;display:flex}.checkbox-list{border:1px solid var(--border);border-radius:8px;max-height:160px;padding:.5rem;overflow-y:auto}.checkbox-list label{cursor:pointer;border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .4rem;font-size:.88rem;display:flex}.checkbox-list label:hover{background:#eef5f1}.success-msg{color:var(--success);background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem}
