*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#fafafa;--bg-secondary:#fff;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-tertiary:#6a6a6a;--border-color:#e5e5e5;--border-hover:#1a1a1a;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 12px #0000001a;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#991b1b}body.dark-mode{--bg-primary:#1a1a1a;--bg-secondary:#2a2a2a;--text-primary:#f5f5f5;--text-secondary:#d4d4d4;--text-tertiary:#a3a3a3;--border-color:#404040;--border-hover:#f5f5f5;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #00000080;--error-bg:#3f1f1f;--error-border:#7f2020;--error-text:#fca5a5}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;transition:background-color .2s,color .2s}header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:20px 40px;display:flex}.header-left{align-items:center;gap:20px;display:flex}.logo{color:var(--text-primary);letter-spacing:.5px;align-items:center;gap:12px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.logo img{width:auto;height:32px}.theme-toggle{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;transition:background .15s;display:flex}.theme-toggle:hover{background:var(--bg-primary)}.theme-toggle svg{width:20px;height:20px;stroke:var(--text-primary);fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.header-right{position:relative}.user-info{align-items:center;gap:16px;display:flex}.username{color:var(--text-secondary);font-size:14px;font-weight:500}button{background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:all .15s}button:hover{background:var(--text-primary);color:var(--bg-secondary);border-color:var(--border-hover)}button:active{transform:translateY(1px)}.login-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);width:320px;box-shadow:var(--shadow-md);z-index:1000;border-radius:8px;padding:24px;display:none;position:absolute;top:calc(100% + 8px);right:0}.login-dropdown.show{animation:.15s slideDown;display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.login-dropdown h3{color:var(--text-primary);margin-bottom:20px;font-size:18px;font-weight:600}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input{border:1px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:6px;padding:10px 12px;font-size:14px;transition:border-color .15s}.form-group input:focus{border-color:var(--border-hover);outline:none}.form-actions{gap:8px;margin-top:20px;display:flex}.form-actions button{flex:1}.error-message{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:6px;margin-bottom:16px;padding:12px;font-size:13px}main{max-width:1200px;margin:0 auto;padding:40px}main h1{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:32px;font-size:32px;font-weight:700}main>p{color:var(--text-tertiary);margin-top:16px;font-size:15px}.module-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:32px;display:grid}.module-card{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);box-shadow:var(--shadow-sm);border-radius:8px;padding:28px;text-decoration:none;transition:all .2s;display:block}.module-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.module-card h3{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:600}.module-card p{color:var(--text-tertiary);font-size:14px;line-height:1.6}.loading{text-align:center;color:var(--text-tertiary);padding:48px;font-size:14px}
